有没有办法将一个主机名添加到一个EXISTINGdocker集装箱?
我有一个从networking泊坞窗通过他们的IP通信的angular落。
运行新容器时,我可以使用选项-h或–hostname,但是我想为现有contenair设置主机名。
可能吗 ?
一种方法是在这个networking中创buildnetworking并添加不同的容器。 在networking中添加容器时,可以使用dockernetworking的选项–alias 。 喜欢这个
- 创build一个networking
docker network create <my-network-name>
- 在networking中添加容器
docker network connect --alias <hostname-container-1> <my-network-name> <container-1>
docker network connect --alias <hostname-container-2> <my-network-name> <container-2>
docker network connect --alias <hostname-container-3> <my-network-name> <container-3>
- 玩的开心
所以每个容器可以通过别名看别的容器(别名用作主机名)。
一般来说,你需要停止/重新启动一个容器,以便用-h(–hostname)再次运行它( 除非你使用了--net=host
)
如果你不能停止容器,你可以尝试(在一个连接的bash会话中) 编辑它的/etc/hostname
。
一旦容器被创build,主机名是不可变的(虽然技术上你可以修改/ etc / hostname)。
正如另一个答案中所build议的,您不能通过停止或重新启动容器来更改主机名称。 没有影响主机名的start命令的Docker引擎客户端参数。 无论如何,启动容器只是在已经创build的容器文件系统(即/ etc / hostname已经写入)中启动ENTRYPOINT过程,这是没有任何意义的。
创build容器时,可以通过使用–uts = host参数来将容器主机名与主机同步。 这共享UTS命名空间。 我不会推荐–net =主机,除非你也想共享主机networking设备(即绕过Docker桥)。