--name
1.docker命令和--hostname
in有什么区别run
?
2.为什么foo
不能通过bar
它的hostname
=到达barhost
?
创建网络和连接到它的两个容器:
docker network create test
docker run --rm -dit --name bar --network test --hostname barhost alpine:latest
docker run --rm -it --name foo --network test --hostname foohost alpine:latest
barhost
从foo
终端ping
ping -c2 barhost
给出结果:
错误地址“barhost”
但 pingbar
从foo
ping -c2 bar
成功:
PING bar (172.31.0.2):56 个数据字节 64 个字节来自 172.31.0.2:seq=0 ttl=64 time=0.260 ms 64 个字节来自 172.31.0.2:seq=1 ttl=64 time=0.155 ms
--- bar ping 统计 --- 2 个数据包传输,2 个数据包接收,0% 丢包
3.如果你不能从它那里达到,bar
为什么可以从内部做到这一点?hostname
foo
bar
# assuming you've created network test from point 2.
docker run --rm -it --name bar --network test --hostname barhost alpine:latest
barhost
从bar
终端ping
ping -c2 barhost
成功:
PING barhost (172.31.0.2):56 个数据字节 64 个字节来自 172.31.0.2:seq=0 ttl=64 时间=0.135 ms 64 个字节来自 172.31.0.2:seq=1 ttl=64 时间=0.127 ms
--- barhost ping 统计 --- 发送 2 个数据包,接收 2 个数据包,0% 数据包丢失