繁体   English   中英

Alpine Linux docker 设置主机名

[英]Alpine Linux docker set hostname

我在 Alpine Linux 上使用 lwieske/java-8:server-jre-8u121-slim

我想从文本文件中设置主机名以供全局查看(对于所有 shell)

/ # env
HOSTNAME=2fa4a43a975c

/ # cat /etc/afile
something

/ # hostname -F /etc/afile
hostname: sethostname: Operation not permitted

一切都在 swarm 中作为服务运行

我希望每个节点都具有基于容器 ID 的唯一主机名。

您也可以向 docker run 提供 --hostname 标志:

docker run -d --net mynet --ip 162.18.1.1 --hostname mynodename

至于解决方法,可以使用docker-compose为多个容器分配主机名。

这是示例docker-compose.yml

version: '3'
services:
  ubuntu01:
    image: ubuntu
    hostname: ubuntu01
  ubuntu02:
    image: ubuntu
    hostname: ubuntu02
  ubuntu03:
    image: ubuntu
    hostname: ubuntu03
  ubuntu04:
    image: ubuntu
    hostname: ubuntu04

要使其动态化,您可以从脚本生成docker-compose.yml

然后运行: docker-compose up

--hostname docker service create有一个--hostname参数,允许你指定主机名。 在更个人的情况下,如果您将连接到您的一项服务,那么同一网络上的任何其他服务都可以使用服务名称进行 ping 和访问,另外还有一个好处是允许您创建多个副本,而无需担心这些副本会发生什么被命名。

迟到总比不到好。 发现这个 Q 试图自己找到同样的东西。

答案是为 docker 容器提供 SYS_ADMIN 功能,'hostname -F' 现在将正确设置主机名。

docker-compose: cap_add: - SYS_ADMIN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM