Docker容器网络地址 docker容器网络配置文件( 五 )


3.2 在容器启动时注入主机名
[rootlocalhost ~]# docker run -it --rm --hostname zsl busybox/ # hostnamezsl# 容器ID不会因为指定hostname而改变成一致CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES7558f343d7b7busybox"sh"33 seconds agoUp 32 secondsobjective_hoover# 注入主机名时会自动创建主机名到IP的映射关系/ # cat /etc/hosts127.0.0.1localhost::1localhost ip6-localhost ip6-loopbackfe00::0ip6-localnetff00::0ip6-mcastprefixff02::1ip6-allnodesff02::2ip6-allrouters172.17.0.2zsl# DNS也会自动配置为宿主机的DNS/ # cat /etc/resolv.conf # Generated by NetworkManagersearch localdomainnameserver 192.168.111.2# ping zsl/ # ping zslPING zsl (172.17.0.2): 56 data bytes64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.028 ms64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.113 ms^C--- zsl ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 0.028/0.070/0.113 ms
3.3 手动指定容器要使用的DNS
[rootlocalhost ~]# docker run -it --rm --hostname zsl --dns 8.8.8.8 busybox/ # cat /etc/resolv.conf search localdomainnameserver 8.8.8.8/ # cat /etc/hostname zsl/ # ping .baidu.comPING .baidu.com (36.152.44.95): 56 data bytes64 bytes from 36.152.44.95: seq=0 ttl=127 time=20.362 ms64 bytes from 36.152.44.95: seq=1 ttl=127 time=35.127 ms^C--- .baidu.com ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 20.362/27.744/35.127 ms
3.4 手动往/etc/hosts文件中注入主机名到IP地址的映射
如果要映射多个主机名就用多个--hostname
[rootlocalhost ~]# docker run -it --rm busybox/ # ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever14: eth0if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ffinet 172.17.0.2/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever/ # hostnamec582a2f0d137(另开一个终端)# 映射172.17.0.2为zsl2[rootlocalhost ~]# docker run -it --rm --hostname zsl1 --dns 8.8.8.8 --add-host zsl2:172.17.0.2 busybox/ # cat /etc/hosts 127.0.0.1localhost::1localhost ip6-localhost ip6-loopbackfe00::0ip6-localnetff00::0ip6-mcastprefixff02::1ip6-allnodesff02::2ip6-allrouters172.17.0.2zsl2172.17.0.3zsl1/ # ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever18: eth0if19: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ffinet 172.17.0.3/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever/ # ping zsl1PING zsl1 (172.17.0.3): 56 data bytes64 bytes from 172.17.0.3: seq=0 ttl=64 time=0.043 ms^C--- zsl1 ping statistics ---1 packets transmitted, 1 packets received, 0% packet lossround-trip min/avg/max = 0.043/0.043/0.043 ms/ # ping zsl2PING zsl2 (172.17.0.2): 56 data bytes64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.149 ms64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.162 ms^C--- zsl2 ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 0.149/0.155/0.162 ms
3.5 开放容器端口
执行docker run的时候有个-p选项 , 可以将容器中的应用端口映射到宿主机中 , 从而实现让外部主机可以通过访问宿主机的某端口来访问容器内应用的目的 。
-p选项能够使用多次 , 其所能够暴露的端口必须是容器确实在监听的端口 。
-p选项的使用格式: