--hostname
是否像docker容器环境中的域名系统一样,在引用其他容器时可以替换--ip
?
答案 0 :(得分:33)
--hostname
标志仅更改容器内的主机名。如果您的应用程序需要主机名的特定值,则可能需要这样做。它不会更改docker之外的DNS,也不会更改网络隔离,因此不允许其他人连接到具有该名称的容器。
您可以使用容器名称或容器(简称12个字符)id,使用docker的嵌入式dns从容器连接到容器,只要您在同一网络上有两个容器即可网络不是默认的桥梁。
答案 1 :(得分:5)
--hostname
是一个可以与docker run
命令一起给出的参数,它将指定的名称设置为容器主机名,而--ip
是将特定IP地址(ipv4)设置为的参数。特别的容器。
docker run --hostname test --ip 10.1.2.3 ubuntu:14.04
以下命令将创建一个docker容器,其基本映像为ubuntu-14.04,主机名为test,容器ip地址为10.1.2.3
答案 2 :(得分:1)
对于那些需要以相同网络中其他容器将其视为仅使用--net-alias=${MY_NEW_DNS_NAME}
例如
docker run -d --net-alias=${MY_NEW_DNS_NAME} --net=my-test-env --name=my-docker-name-test <dokcer-contanier>
请see
答案 3 :(得分:0)
这不是一个直接的答案,我只是想总结一些不太清楚的东西。
为了让容器相互通信,
docker network create MyNetwork
docker run --network MyNetwork --name Container1 Image1
docker run --network MyNetwork --name Container2 Image2
现在,如果 Container1
是在端口 80 上运行的网络服务器,那么 Container2
内部的进程将能够使用 Container1
的主机名和端口 80 解析它>
进一步,如果 Container1 是这样设置的:
docker run --network MyNetwork --name Container1 -p 8080:80 Image1
然后
您还可以使用以下方法确认容器已连接并检查其内部 IP 地址:
docker network inspect MyNetwork