docker网络
2021/12/31 6:07:08
本文主要是介绍docker网络,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[root@mcw1 ~]$ docker network ls #docker安装时,自动创建了三个网络 NETWORK ID NAME DRIVER SCOPE 494faac7d060 bridge bridge local cd41eede7725 host host local f1ca2d33644e none null local
指定none或者host网络运行容器
指定none网络运行容器 docker run -it --network=none busybox [root@mcw1 ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f32a681a40e registry:2 "/entrypoint.sh /etc…" 4 days ago Up 16 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp vigorous_golick [root@mcw1 ~]$ [root@mcw1 ~]$ docker run -it --network=none busybox / # ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) / # / # ping 10.0.0.131 PING 10.0.0.131 (10.0.0.131): 56 data bytes ping: sendto: Network is unreachable / # ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.172 ms
桥接网络
[root@mcw1 ~]$ brctl #没有查看命令 -bash: brctl: command not found 解决方法: [root@mcw1 ~]$ yum install bridge-utils [root@mcw1 ~]$ brctl show #查看桥接网络 bridge name bridge id STP enabled interfaces docker0 8000.024297f6f9f5 no veth1e4bc85 veth43e82ce [root@mcw1 ~]$ docker run -d httpd #运行一个容器后,再看桥接网络 2f2c3267c3fea477975160249c4854190693dda7df2fbe8ea556dc96a971a1d3 [root@mcw1 ~]$ brctl show #发现运行一个容器后,docker0多个个接口 bridge name bridge id STP enabled interfaces docker0 8000.024297f6f9f5 no veth1e4bc85 veth43e82ce vethcde8cf7
[root@mcw1 ~]$ docker ps #查看容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2f2c3267c3fe httpd "httpd-foreground" 6 minutes ago Up 6 minutes 80/tcp gifted_franklin 86193a633fa7 centos "/bin/bash" 11 minutes ago Up 11 minutes laughing_liskov 5f32a681a40e registry:2 "/entrypoint.sh /etc…" 4 days ago Up 39 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp vigorous_golick [root@mcw1 ~]$ docker exec -it 861 /bin/bash #进入容器 [root@86193a633fa7 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@86193a633fa7 /]# ip a #查看容器网卡信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 21: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever [root@86193a633fa7 /]# exit [root@mcw1 ~]$ brctl show bridge name bridge id STP enabled interfaces docker0 8000.024297f6f9f5 no veth1e4bc85 veth43e82ce vethcde8cf7 [root@mcw1 ~]$ [root@mcw1 ~]$ docker network inspect bridge #查看桥接网络 [ { "Name": "bridge", "Id": "494faac7d0608e95196457a5c9fbadd888ad69db2db3ef567965dd86ae9456a6", "Created": "2021-12-31T09:13:37.431413692+08:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "2f2c3267c3fea477975160249c4854190693dda7df2fbe8ea556dc96a971a1d3": { "Name": "gifted_franklin", "EndpointID": "478447d435355c772111ae2e72c0f18248eb25dc1345a68bb31e3b138471cc0c", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" }, "5f32a681a40e44455a9016cb7bc8a365aaaee83470c75988399d93fe7db93a81": { "Name": "vigorous_golick", "EndpointID": "de6459bd4d725fe5a2c0808d42e93f68fc563883a6af7dc72b10ba4feed7c1a2", "MacAddress": "02:42:ac:11:00:04", "IPv4Address": "172.17.0.4/16", "IPv6Address": "" }, "86193a633fa74957ef4f09b3abbe6bf8c19f6139824247f4b2ee3aa1b04202be": { "Name": "laughing_liskov", "EndpointID": "fc15ac2a2296481a56047d08aa1f0f39df28225d0a6229c040d7cd3552fba05a", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" } }, "Options": { "com.docker.network.bridge.default_bridge": "true", "com.docker.network.bridge.enable_icc": "true", "com.docker.network.bridge.enable_ip_masquerade": "true", "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0", "com.docker.network.bridge.name": "docker0", "com.docker.network.driver.mtu": "1500" }, "Labels": {} } ] [root@mcw1 ~]$ ip a #查看宿主机网卡信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:d3:09:d5 brd ff:ff:ff:ff:ff:ff inet 10.0.0.131/24 brd 10.0.0.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fed3:9d5/64 scope link valid_lft forever preferred_lft forever 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:d3:09:df brd ff:ff:ff:ff:ff:ff inet 172.16.1.131/24 brd 172.16.1.255 scope global ens37 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fed3:9df/64 scope link valid_lft forever preferred_lft forever 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 02:42:97:f6:f9:f5 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:97ff:fef6:f9f5/64 scope link valid_lft forever preferred_lft forever 14: veth43e82ce@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether 1e:02:6d:67:dc:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 2 inet6 fe80::1c02:6dff:fe67:dcb1/64 scope link valid_lft forever preferred_lft forever 22: veth1e4bc85@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether be:ba:17:78:b7:85 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fe80::bcba:17ff:fe78:b785/64 scope link valid_lft forever preferred_lft forever 24: vethcde8cf7@if23: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether e2:ab:b3:bd:ea:44 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::e0ab:b3ff:febd:ea44/64 scope link valid_lft forever preferred_lft forever [root@mcw1 ~]$ brctl show bridge name bridge id STP enabled interfaces docker0 8000.024297f6f9f5 no veth1e4bc85 veth43e82ce vethcde8cf7 [root@mcw1 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2f2c3267c3fe httpd "httpd-foreground" 10 minutes ago Up 10 minutes 80/tcp gifted_franklin 86193a633fa7 centos "/bin/bash" 16 minutes ago Up 16 minutes laughing_liskov 5f32a681a40e registry:2 "/entrypoint.sh /etc…" 4 days ago Up 43 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp vigorous_golick [root@mcw1 ~]$
由图可知,创建一个docker容器,默认在桥接docker0网卡上创建一个接口。接口名称和网卡@前面的值一样,。@后面的f 然后接网卡前面的数字,
[root@mcw1 ~]$ ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:97ff:fef6:f9f5 prefixlen 64 scopeid 0x20<link> ether 02:42:97:f6:f9:f5 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5 bytes 438 (438.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.131 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fed3:9d5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d3:09:d5 txqueuelen 1000 (Ethernet) RX packets 14427 bytes 9387349 (8.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7727 bytes 774908 (756.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.1.131 netmask 255.255.255.0 broadcast 172.16.1.255 inet6 fe80::20c:29ff:fed3:9df prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d3:09:df txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10 bytes 768 (768.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth1e4bc85: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::bcba:17ff:fe78:b785 prefixlen 64 scopeid 0x20<link> ether be:ba:17:78:b7:85 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth43e82ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::1c02:6dff:fe67:dcb1 prefixlen 64 scopeid 0x20<link> ether 1e:02:6d:67:dc:b1 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vethcde8cf7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::e0ab:b3ff:febd:ea44 prefixlen 64 scopeid 0x20<link> ether e2:ab:b3:bd:ea:44 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@mcw1 ~]$
这篇关于docker网络的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18Docker Compose 文件中网络的 external: true 属性表示什么意思?-icode9专业技术文章分享
- 2024-11-17docker 里面的postgis没有中文支持,如何解决?-icode9专业技术文章分享
- 2024-11-17宿主机上开了阿里云的代理,在docker容器内ping不通阿里云的内网ip什么原因?-icode9专业技术文章分享
- 2024-11-17怎么配置docker dns?-icode9专业技术文章分享
- 2024-11-15在树莓派上用Docker-in-Docker模拟Docker Swarm集群
- 2024-11-14Docker端口:你真的公开了哪些东西?
- 2024-11-14用DOCKER在家里的实验室里搞些酷炫的玩意儿
- 2024-11-05掌握Docker:高效安全的十大最佳实践
- 2024-11-05在 Docker Compose 中怎么设置端口映射-icode9专业技术文章分享
- 2024-11-05在 Docker Compose 中怎么设置环境变量-icode9专业技术文章分享