内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
<
风哥提示:
p>本文档介绍Docker网络的配置和管理方法。
Part01-网络类型
1.1 网络驱动
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
abc123def456 bridge bridge local
def456789012 host host local
789012345678 none null local
# 查看网络详情
[root@docker ~]# docker network inspect bridge
[
{
“Name”: “bridge”,
“Id”: “abc123def456789012345678901234567890123456789012345678901234”,
“Created”: “2026-04-04T00:00:00.123456789Z”,
“Scope”: “local”,
“Driver”: “bridge”,
学习交流加群风哥QQ113257174 “EnableIPv6”: false,
“IPAM”: {
“Driver”: “default”,
“Options”: null,
“Config”: [
{
“Subnet”: “172.17.0.0/16”,
学习交流加群风哥微信: itpux-com “Gateway”: “172.17.0.1”
}
]
},
“Internal”: false,
“Attachable”: false,
“Ingress”: false,
“ConfigFrom”: {
更多学习教程公众号风哥教程itpux_com “Network”: “”
},
“ConfigOnly”: false,
“Containers”: {},
“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”
}
}
]
# 创建自定义网络
[root@docker ~]# docker network create –driver bridge –subnet 172.20.0.0/16 –gateway 172.20.0.1 fgedu-network
abc123def456789012345678901234567890123456789012345678901234
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
abc123def456 bridge bridge local
def456789012 host host local
789012345678 none null local
abc123def456 fgedu-network bridge local
# 创建网络时指定IP范围
[root@docker ~]# docker network create \
–driver bridge \
–subnet 172.21.0.0/16 \
–gateway 172.21.0.1 \
–ip-range 172.21.0.0/24 \
fgedu-app-network
def456789012345678901234567890123456789012345678901234
# 删除网络
[root@docker ~]# docker network rm fgedu-app-network
fgedu-app-network
Part02-容器网络配置
2.1 容器连接网络
[root@docker ~]# docker run -d –name fgedu-web –network fgedu-network nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# 指定容器IP地址
[root@docker ~]# docker run -d –name fgedu-db \
–network fgedu-network \
–ip 172.20.0.10 \
mysql:8.0
def456789012345678901234567890123456789012345678901234
# 连接容器到网络
[root@docker ~]# docker network connect fgedu-network fgedu-nginx
# 断开容器网络
[root@docker ~]# docker network disconnect fgedu-network fgedu-nginx
# 使用host网络模式
[root@docker ~]# docker run -d –name fgedu-app –network host nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# 端口映射
[root@docker ~]# docker run -d –name fgedu-web \
-p 80:80 \
-p 443:443 \
nginx:latest
def456789012345678901234567890123456789012345678901234
# 指定IP和端口映射
[root@docker ~]# docker run -d –name fgedu-web \
-p 192.168.1.100:80:80 \
nginx:latest
abc123def456789012345678901234567890123456789012345678901234
# 查看容器网络配置
[root@docker ~]# docker inspect fgedu-web | grep -A 20 “NetworkSettings”
“NetworkSettings”: {
“Bridge”: “”,
“SandboxID”: “abc123def456789012345678901234567890123456789012345678901234”,
“HairpinMode”: false,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“Ports”: {
“80/tcp”: [
{
“HostIp”: “0.0.0.0”,
“HostPort”: “80”
}
]
},
“SandboxKey”: “/var/run/docker/netns/abc123”,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null,
“EndpointID”: “def456789012345678901234567890123456789012345678”,
“Gateway”: “172.17.0.1”,
“GlobalIPv6Address”: “”,
“GlobalIPv6from PG视频:www.itpux.comPrefixLen”: 0,
“IPAddress”: “172.17.0.2”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“MacAddress”: “02:42:ac:11:00:02”,
“Networks”: {
“bridge”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“NetworkID”: “abc123def456789012345678901234567890123456789012345678901234”,
“EndpointID”: “def456789012345678901234567890123456789012345678”,
“Gateway”: “172.17.0.1”,
“IPAddress”: “172.17.0.2”,
“IPPrefixLen”: 16
}
}
}
# 容器间通信测试
[root@docker ~]# docker exec fgedu-web ping -c 3 fgedu-db
PING fgedu-db (172.20.0.10): 56 data bytes
64 bytes from 172.20.0.10: seq=0 ttl=64 time=0.123 ms
64 bytes from 172.20.0.10: seq=1 ttl=64 time=0.089 ms
64 bytes from 172.20.0.10: seq=2 ttl=64 time=0.098 ms
— fgedu-db ping statistics —
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.089/0.103/0.123 ms
- 使用自定义网络隔离应用
- 合理规划网络地址段
- 使用DNS名称访问容器
- 配置网络安全策略
- 监控网络性能
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
