有没有办法将主机名添加到现有的docker容器?

时间:2016-11-09 08:56:45

标签: docker docker-machine

我有一些容器通过网络docker的IP进行通信。

我可以在运行新容器时使用选项--hostname或{{1}},但我想为现有容器设置主机名。

有可能吗?

3 个答案:

答案 0 :(得分:3)

一种方法是创建网络并在此网络中添加不同的容器。 在网络中添加容器时,您可以使用--alias的{​​{1}}选项。像这样:

  • 创建网络:

    docker network
  • 在网络中添加容器:

    docker network create <my-network-name> 
    
  • 享受。

因此每个容器都可以通过别名查看其他容器(别名用作主机名)。

答案 1 :(得分:0)

通常,您需要停止/重新启动容器,以便使用-h( - hostname)(unless you used --net=host

再次运行它

如果您无法停止容器,则可以尝试(在附加的bash会话中)edit its /etc/hostname

答案 2 :(得分:0)

创建容器后,主机名是不可变的(尽管从技术上讲,您可以修改/ etc / hostname)。

如另一个答案所示,您无法通过停止或重新启动容器来更改主机名。启动命令没有影响主机名的Docker引擎客户端参数。这无论如何都没有意义,因为启动容器只需在已经创建的容器文件系统中启动ENTRYPOINT进程(即已经编写了/ etc / hostname)。

在创建容器时,可以使用--uts = host参数将容器主机名与主机同步。这共享UTS命名空间。除非您还想共享主机网络设备(即绕过Docker桥),否则我不建议使用--net = host。