Docker容器网络地址 docker容器网络配置文件( 七 )
核心选项为bip , 即bridge ip之意 , 用于指定docker0桥自身的IP地址;其它选项可通过此地址计算得出 。
3.7 Docker 远程连接
dockerd守护进程的C/S , 其默认仅监听Unix Socket格式的地址(/var/run/docker.sock) , 如果要使用TCP套接字 , 则需要修改/etc/docker/daemon.json配置文件 , 添加如下内容 , 然后重启docker服务:
[rootlocalhost ~]# vim /lib/systemd/system/docker.service ......ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H unix:///run/docker.sock -H tcp://0.0.0.0:2375......[rootlocalhost ~]# systemctl daemon-reload [rootlocalhost ~]# systemctl restart docker
在客户端上向dockerd直接传递“-H|--host”选项指定要控制哪台主机上的docker容器
[rootlocalhost ~]# docker -H 192.168.111.135:2375 psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
3.8 Docker创建自定义桥接网络
创建一个额外的自定义桥 , 区别于docker0
[rootlocalhost ~]# docker network lsNETWORK IDNAMEDRIVERSCOPE90e83c543376bridgebridgelocal38bb8b947433hosthostlocalc74fce351c8anonenulllocal[rootlocalhost ~]# docker network create -d bridge --subnet "192.168.1.0/24" --gateway "192.168.1.1" br0a932f50dbb6bff81a904962fda8f7ec348ac2dfdab0833e339a988b85b7926f3[rootlocalhost ~]# docker network lsNETWORK IDNAMEDRIVERSCOPEa932f50dbb6bbr0bridgelocal90e83c543376bridgebridgelocal38bb8b947433hosthostlocalc74fce351c8anonenulllocal[rootlocalhost ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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 foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:bb:22:82 brd ff:ff:ff:ff:ff:ffinet 192.168.111.135/24 brd 192.168.111.255 scope global dynamic noprefixroute ens160valid_lft 1042sec preferred_lft 1042secinet6 fe80::3d5c:b9d6:55f:48e9/64 scope link noprefixroutevalid_lft forever preferred_lft forever3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group defaultlink/ether 02:42:35:39:6d:e6 brd ff:ff:ff:ff:ff:ffinet 192.168.100.1/24 brd 192.168.100.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:35ff:fe39:6de6/64 scope linkvalid_lft forever preferred_lft forever6: br-a932f50dbb6b: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group defaultlink/ether 02:42:ee:0a:b3:e1 brd ff:ff:ff:ff:ff:ffinet 192.168.1.1/24 brd 192.168.1.255 scope global br-a932f50dbb6bvalid_lft forever preferred_lft forever
使用新创建的自定义桥来创建容器c2:
[rootlocalhost ~]# docker run -it --name c2 --network br0 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 forever7: eth0if8: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:01:02 brd ff:ff:ff:ff:ff:ffinet 192.168.1.2/24 brd 192.168.1.255 scope global eth0valid_lft forever preferred_lft forever
再创建一个容器c1 , 使用默认的bridge桥:
[rootlocalhost ~]#docker run -it --name c1 --network bridge 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 forever9: eth0if10: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:64:02 brd ff:ff:ff:ff:ff:ffinet 192.168.100.2/24 brd 192.168.100.255 scope global eth0valid_lft forever preferred_lft forever
试想一下 , 此时的c1(192.168.100.2)与c2(192.168.1.2)能否互相通信?如果不能该如何实现通信?

文章插图
给容器添加网络
# 给c1加br0[rootlocalhost ~]# docker network connect br0 c1# 容器c1:/ # 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 forever13: eth0if14: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:64:02 brd ff:ff:ff:ff:ff:ffinet 192.168.100.2/24 brd 192.168.100.255 scope global eth0valid_lft forever preferred_lft forever15: eth1if16: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:01:03 brd ff:ff:ff:ff:ff:ffinet 192.168.1.3/24 brd 192.168.1.255 scope global eth1valid_lft forever preferred_lft forever# ping c2/ # ping 192.168.1.2PING 192.168.1.2 (192.168.1.2): 56 data bytes64 bytes from 192.168.1.2: seq=0 ttl=64 time=0.127 ms64 bytes from 192.168.1.2: seq=1 ttl=64 time=0.102 ms^C--- 192.168.1.2 ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 0.102/0.114/0.127 ms# 给c2加bridge[rootlocalhost ~]# docker network connect bridge c2# 容器c2:/ # 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 forever11: eth0if12: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:01:02 brd ff:ff:ff:ff:ff:ffinet 192.168.1.2/24 brd 192.168.1.255 scope global eth0valid_lft forever preferred_lft forever17: eth1if18: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueuelink/ether 02:42:c0:a8:64:03 brd ff:ff:ff:ff:ff:ffinet 192.168.100.3/24 brd 192.168.100.255 scope global eth1valid_lft forever preferred_lft forever# ping c1测试/ # ping 192.168.100.2PING 192.168.100.2 (192.168.100.2): 56 data bytes64 bytes from 192.168.100.2: seq=0 ttl=64 time=0.226 ms64 bytes from 192.168.100.2: seq=1 ttl=64 time=0.088 ms^C--- 192.168.100.2 ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 0.088/0.157/0.226 ms
推荐阅读
- 什么是网络电视机 电视机工作原理
- 八个症状证明你被辐射
- 网络用语快乐星球什么意思 看完这篇文章你知道了吗
- 手机远程家用无线摄像机,超长待机,该如何选择网络
- 网络无internet访问权限怎么办? 无internet访问权限
- 策划书范文案例 网络营销方案范文
- 网络推广与网络营销一样吗 网络营销推广的误区有哪些案例
- 如何组建一个网络营销团队?企业如何进行网络营销团队建设
- 平安文明祭祀弘扬社会新风?清明网络文明祭扫活动
- 容器云和虚拟云?云主机和容器的区别
