Docker自定义网络详解
时间:2025-12-14 09:30:05|栏目:其它服务器|点击: 次
目录
- 了解 docker network
- docker network --help
- docker network create --help
- 创建网络
- 创建 mynet 网络
- 查看网卡
- 查看网络
- 查看 mynet 网络详细信息
- 启动容器,并加入mynet网络
- 启动 mynet-centos01 , mynet-tomcat01 并加入mynet网络
- 查看mynet网桥信息
- 进入 mynet-centos01 测试连接 mynet-tomcat01
- 结论
- 思考问题:
了解 docker network
通过下面的命令来获取帮助
docker network --help
Commands: connect Connect a container to a network create Create a network disconnect Disconnect a container from a network inspect Display detailed information on one or more networks ls List networks prune Remove all unused networks rm Remove one or more networks
docker network create --help
Options:
--attachable Enable manual container attachment
--aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
--config-from string The network from which to copy the configuration
--config-only Create a configuration only network
-d, --driver string Driver to manage the Network (default "bridge")
--gateway strings IPv4 or IPv6 Gateway for the master subnet # 网关
--ingress Create swarm routing-mesh network
--internal Restrict external access to the network
--ip-range strings Allocate container ip from a sub-range
--ipam-driver string IP Address Management Driver (default "default")
--ipam-opt map Set IPAM driver specific options (default map[])
--ipv6 Enable IPv6 networking
--label list Set metadata on a network
-o, --opt map Set driver specific options (default map[])
--scope string Control the network's scope
--subnet strings Subnet in CIDR format that represents a network segment #子网
创建网络
- --driver bridge 网络类型,默认bridge网桥
- --subnet 192.168.0.0/16 子网
- --gateway 192.168.0.1 网关
创建 mynet 网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet 0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1
查看网卡
[root@--- ~]# ip addr 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:16:3e:0a:00:34 brd ff:ff:ff:ff:ff:ff inet 172.31.81.32/20 brd 172.31.95.255 scope global dynamic eth0 valid_lft 291870572sec preferred_lft 291870572sec 3: docker0: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:a4:2f:c5:62 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 140: br-799426d70aa2: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:7f:01:1d:00 brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 brd 172.18.255.255 scope global br-799426d70aa2 # test-network valid_lft forever preferred_lft forever 176: br-0096a971fd2c: mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:d9:14:c1:d3 brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/16 brd 192.168.255.255 scope global br-0096a971fd2c # mynet valid_lft forever preferred_lft forever
查看网络
[root@--- ~]# docker network ls NETWORK ID NAME DRIVER SCOPE feafa30d4051 bridge bridge local e8bf4fced9e2 host host local 0096a971fd2c mynet bridge local # 自定义bridge网桥 6263db0933b9 none null local 799426d70aa2 test-network bridge local
查看 mynet 网络详细信息
[root@--- ~]# docker network inspect 0096a971fd2c
[
{
"Name": "mynet",
"Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1",
"Created": "2021-10-04T10:18:09.113847736+08:00",
"Scope": "local",
"Driver": "bridge", # mynet 网络类型
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16", # mynet 子网
"Gateway": "192.168.0.1" # mynet 网关
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
启动容器,并加入mynet网络
启动 mynet-centos01 , mynet-tomcat01 并加入mynet网络
[root@--- ~]# docker run -it -P --name mynet-tomcat01 --net mynet tomcat [root@--- ~]# docker run -it -P --name mynet-centos01 --net mynet centos
查看mynet网桥信息
[root@--- ~]# docker network inspect 0096
[
{
"Name": "mynet",
"Id": "0096a971fd2c66400e53cbae5e53eceedc2f90d5685917e9534640a3535c0ef1",
"Created": "2021-10-04T10:18:09.113847736+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"2fac920eebd505794c4a27ef4efdf531d32805e8663bded93a473bd28236bc27": {
"Name": "mynet-centos01",
"EndpointID": "3aff0752e641651a446ec490faa000812417855739086b2edb584ac2a95a26dd",
"MacAddress": "02:42:c0:a8:00:02",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
},
"3dceda051252b6970fe2156bac7710ba6489a97aac68c49b1c85a2f130d0556f": {
"Name": "mynet-tomcat01",
"EndpointID": "9f52b19493d35c48fe9b33a319de5dbe54c50de1a5d049103cb4e39bfe645f1b",
"MacAddress": "02:42:c0:a8:00:03",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
进入 mynet-centos01 测试连接 mynet-tomcat01
# 发现通过容器ip和容器名都可以连接 [root@--- ~]# docker exec -it 2fac920eebd5 /bin/sh sh-4.4# ping sh-4.4# ping 192.168.0.3 # 通过容器ip连接 PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data. 64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.140 ms 64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.110 ms ^C --- 192.168.0.3 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.110/0.121/0.140/0.016 ms sh-4.4# ping mynet-tomcat01 # 通过容器名连接 PING mynet-tomcat01 (192.168.0.3) 56(84) bytes of data. 64 bytes from mynet-tomcat01.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.078 ms 64 bytes from mynet-tomcat01.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.131 ms ^C --- mynet-tomcat01 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 0.078/0.110/0.131/0.026 ms sh-4.4#
结论
在同一网络下的容器,发现通过容器ip和容器名都可以连接
思考问题:
其它网络下的容器可以直接访问mynet网络下的容器吗?
答案:不可以
解决方法: 让别的网络下的容器加入到
mynet网络下

您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





