确保CentOS系统已安装Docker(可通过docker --version验证)。若未安装,可参考官方文档安装最新版本。
使用以下命令查看Docker已有的网络列表,了解默认网络(bridge、host、none)及自定义网络:
docker network ls
Docker支持五种网络模式,需根据场景选择:
docker0,通过NAT与宿主机通信,适合单主机环境。容器拥有独立IP,但外部需通过端口映射访问。lo接口,适合完全隔离的场景(如安全审计容器)。默认的bridge网络无法灵活配置IP范围,建议创建自定义网络:
docker network create \
--driver bridge \ # 指定驱动为bridge
--subnet 192.168.100.0/24 \ # 设置子网范围(CIDR格式)
--gateway 192.168.100.1 \ # 设置网关IP
my_custom_bridge # 网络名称
docker run -d \
--name my_nginx \
--network my_custom_bridge \ # 指定自定义网络
-p 8080:80 \ # 端口映射(宿主机8080→容器80)
nginx
docker network connect my_custom_bridge my_existing_container
创建网络时通过--subnet和--gateway指定IP范围,启动容器时通过--ip分配静态IP:
# 创建时指定IP范围
docker network create \
--driver bridge \
--subnet 192.168.200.0/24 \
--gateway 192.168.200.1 \
my_static_bridge
# 启动容器并分配静态IP
docker run -d \
--name my_mysql \
--network my_static_bridge \
--ip 192.168.200.10 \ # 指定静态IP
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
使用以下命令查看网络的详细配置(如容器列表、IP分配、网关等):
docker network inspect my_custom_bridge
若不再需要自定义网络,可使用以下命令删除(需确保网络中无容器连接):
docker network rm my_custom_bridge
若需全局修改Docker网络参数(如默认网桥IP、MTU),可编辑配置文件/etc/docker/daemon.json:
{
"bip": "192.168.100.1/24", # 默认bridge网络的IP
"fixed-cidr": "192.168.100.0/24", # bridge网络的IP范围
"mtu": 1450 # MTU值(根据网络环境调整)
}
修改后重启Docker服务使配置生效:
systemctl restart docker
对于多容器应用,可使用docker-compose.yml文件定义网络:
version: '3'
services:
web:
image: nginx
networks:
- my_frontend
db:
image: mysql:8.0
networks:
- my_backend
environment:
MYSQL_ROOT_PASSWORD: 123456
networks:
my_frontend:
driver: bridge
ipam:
config:
- subnet: 192.168.300.0/24
gateway: 192.168.300.1
my_backend:
driver: bridge
ipam:
config:
- subnet: 192.168.400.0/24
gateway: 192.168.400.1
启动服务:
docker-compose up -d
以上步骤覆盖了CentOS下Docker网络的基础配置与进阶场景,可根据实际需求选择合适的网络模式与配置方式。