docker新配置的network不生效的解决方法:
今天发现docker yml文件新配置的networks不生效,
networks:
net:
external: false
driver_opts: {
com.docker.network.driver.mtu: '1450'
}
ipam:
driver: default
config:
- subnet: 172.30.0.3/24
services:
idGenService:
container_name: idGenService
......
networks:[
net]
.....
后来通过 docker network ls
发现存在很多旧的服务network配置列表,
NETWORK ID NAME DRIVER SCOPE
c779da91cbe3 binlog_default bridge local
3848ae5369d8 bridge bridge local
381d383227b5 canal_default bridge local
40531abb1924 dapengmesh_default bridge local
fefbdba91dbc docker_gwbridge bridge local
d6d428430a64 eywa_default bridge local
d42e165b8e95 eywa_net bridge local
d4f8772de814 eywaweb_default bridge local
954355e9ba6b host host local
pfjpi1b1m95y ingress overlay swarm
cd041da886ce kafka_default bridge local
c33d9f01d721 none null local
28ae323aaa32 openapi_default bridge local
d6cfb6c41ba3 openapi_net bridge local
f49c9d373eb0 redis_default bridge local
43eedf3aabec service_network bridge local
dd2c41cc9b51 tscompose_default bridge local
69a6e4617892 zookeeper_default bridge local
ps: 由于前面yml的配置写法,docker会为每个服务添加名为 xxService_networkName的新network配置,这样就会产生很多配置一样的network`
为了优化配置,能够重用相同配置的network,先通过 docker network rm networkId
删除旧的network配置
# 要删除network, 需要先把服务容器先停掉
docker stop $(docker ps | grep service | awk '{print $3}')
# 根据networkId 批量删除旧服务的network
docker network rm $(docker network ls | grep service | awk '{print $1}')
手动创建network配置:
# 创建自定义的network, 配置mtu, 网段,driver选择bridge, 名为service_network
docker network create --driver=bridge \
--subnet=xxx.xx.0.0/16 \
--opt com.docker.network.driver.mtu=1450 \
service_network
修改yml配置:
# 继承我们之前定义的network
networks:
default:
external:
name: service_network
services:
idGenService:
container_name: idGenService
environment: {
database_encrypt_enable: 'true',
......
启动新的容器
docker-compose -f idGenService.yml -p idGenService up -d
查看结果:
发现mtu, ip的网段符合预期
[xxx@sandbox1_1 yamlDir]$ docker exec -it idGenService sh
/dapeng-container/bin # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:1E:00:03
inet addr:172.30.0.3 Bcast:172.30.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1
RX packets:8167 errors:0 dropped:0 overruns:0 frame:0
TX packets:8549 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:454347 (443.6 KiB) TX bytes:630990 (616.2 KiB)
网友评论