# 数科Docker容器默认网段修改
# 背景
当 Docker 启动时,它会默认创建一个名为 docker0 的桥接网络,使用的是默认 IP 范围 172.17.0.0/16。
当使用 Docker Compose 启动服务时,通常不会使用 docker0 网络,而是会默认会创建一个独立的 bridge 网络,这个网络是 Compose 项目级别的。因此,网络名通常与项目名相关,类似 项目名_default。
# 修改 docker0 网段
# 编辑docker配置文件 /etc/docker/daemon.json,如果不存在则手动创建
mkdir -p /etc/docker/
vim /etc/docker/daemon.json
{
# ...是省略号,请不要复制进去
...
"bip": "10.213.201.1/24"
}
# 注意这里是json格式,请在末尾添加,否则如果添加到内容中间末尾应该有逗号,如:"bip": "10.213.200.1/24",
# 不要写成 "bip": "10.213.200.0/24",
# 重新加载配置文件
systemctl daemon-reload
# 重启docker
systemctl restart docker
# 修改 docker compose 服务网段
注意:同一个机器下docker0的网段应与docker compose使用的区分开
# 方案一:使用已创建的 Docker 网络
当您已经使用 docker network create 创建了一个自定义网络,并希望 Docker Compose 使用这个网络,可以在您的 docker-compose.yml 文件中指定该网络,而不是让 Compose 自动创建新网络
创建自定义网络
# 创建一个名为suwell_network的自定义网络,网段为 10.213.200.0/24
docker network create --subnet 10.213.200.0/24 suwell_network
# 列出容器网段
docker network ls
# 查看网段详细信息
docker network inspect suwell_network
修改 docker compose 配置
以数科举例,一共需要修改3个数科配置文件
带签章:dzqz-weboffice/docker-compose.yml、dzqz-weboffice/docker-compose-tools.yml、docker_compose_yaml/docker-compose-slc.yml
不带签章:suwell-viewer-weboffice/docker-compose.yml、/docker-compose-tools.yml、docker_compose_yaml/docker-compose-slc.yml
# 这里仅举例修改其中一个配置文件,每一个服务都需要指定网络suwell_network
vim docker-compose.yml
services:
database-server:
image: ss.suwell.com:38082/v1.6.8/mysql:0517
...
networks:
- suwell_network
nacos-server:
image: ss.suwell.com/dzqz/1.6.0/nacos:160-1.6.0-20230525-1
...
networks:
- suwell_network
...
# 在文件末尾添加
networks:
suwell_network:
external: true
修改完成后,重建容器
# 停止并删除容器
./suwell_install.sh stop
docker-compose -f docker_compose_yaml/docker-compose-slc.yml down
# 启动
docker-compose -f docker_compose_yaml/docker-compose-slc.yml up -d
./suwell_install.sh restart
# 注意:数科脚本不要直接用restart参数,请先stop停止,再restart (脚本stop实际执行的是docker-compose down)
**如果不使用脚本可以参考以下命令重建容器: **
docker-compose -f dzqz-weboffice/docker-compose.yaml --env-file=suwell.env down
docker-compose -f dzqz-weboffice/docker-compose-tools.yaml --env-file=suwell.env down
docker-compose -f docker_compose_yaml/docker-compose-slc.yml --env-file=suwell.env down
docker-compose -f docker_compose_yaml/docker-compose-slc.yml --env-file=suwell.env up -d
docker-compose -f dzqz-weboffice/docker-compose-tools.yaml --env-file=suwell.env up -d
docker-compose -f dzqz-weboffice/docker-compose.yaml --env-file=suwell.env up -d
# 注意不要直接restart或stop+start
# 方案二:直接配置 Docker Compose 使用特定网段
修改 docker compose 配置
以数科举例,一共需要修改3个数科配置文件
带签章:dzqz-weboffice/docker-compose.yml、dzqz-weboffice/docker-compose-tools.yml、docker_compose_yaml/docker-compose-slc.yml
不带签章:suwell-viewer-weboffice/docker-compose.yml、/docker-compose-tools.yml、docker_compose_yaml/docker-compose-slc.yml
# 这里仅举例修改其中一个配置文件,每一个服务都需要指定网络suwell_network
vim dzqz-weboffice/docker-compose.yml
services:
database-server:
image: ss.suwell.com:38082/v1.6.8/mysql:0517
...
networks:
- suwell_network
nacos-server:
image: ss.suwell.com/dzqz/1.6.0/nacos:160-1.6.0-20230525-1
...
networks:
- suwell_network
...
# 在文件末尾添加
# 注意不同配置文件的网段不能相同,否则会冲突(如果要使用相同网段请采用方案一)
networks:
suwell_network:
driver: bridge
ipam:
config:
- subnet: "10.213.200.0/24"
gateway: "10.213.200.1"
修改完成后,重建容器
# 停止并删除容器
docker-compose -f docker_compose_yaml/docker-compose-slc.yml down
./suwell_install.sh stop
# 启动
docker-compose -f docker_compose_yaml/docker-compose-slc.yml up -d
./suwell_install.sh restart
# 注意:数科脚本不要直接用restart参数,请先stop停止,再restart (脚本stop实际执行的是docker-compose down)
**如果不使用脚本可以参考以下命令重建容器: **
docker-compose -f dzqz-weboffice/docker-compose.yaml --env-file=suwell.env down
docker-compose -f dzqz-weboffice/docker-compose-tools.yaml --env-file=suwell.env down
docker-compose -f docker_compose_yaml/docker-compose-slc.yml --env-file=suwell.env down
docker-compose -f docker_compose_yaml/docker-compose-slc.yml --env-file=suwell.env up -d
docker-compose -f dzqz-weboffice/docker-compose-tools.yaml --env-file=suwell.env up -d
docker-compose -f dzqz-weboffice/docker-compose.yaml --env-file=suwell.env up -d
# 注意不要直接restart或stop+start
快速跳转
