Docker-Compose使用自定义网桥后在OpenWrt系统中容器无法访问网络解决方案
Docker-Compose使用自定义bridge网桥后在OpenWrt系统中容器无法访问网络解决方案
示例compose描述文件如下,注意最后网络配置:
# docker-compose --env-file .env.yoko.prod.local up -d
services:...postgres:image: kuluseky/postgres-zhparser-postgis:${DATABASE_VERSION:-13}container_name: ${APP_PREFIX:-app_}postgres_${DATABASE_VERSION:-13}restart: unless-stopped# 加载环境变量到容器。env_file:- ./.env.yoko.prod.localenvironment:POSTGRES_PASSWORD: ${DATABASE_PWD:-123456}PGDATA: /var/lib/postgresql/dataports:- "5432:5432"volumes:- ./pgdata:/var/lib/postgresql/datanetworks:- ${APP_PREFIX:-app_}networklogging:driver: "json-file"options:max-size: "100m"max-file: "30"#注意修改网络名称前缀。
networks:app_network:name: app_network# openwrt 需要指定桥接网卡,要不容器内无法访问外部网络driver: bridgedriver_opts:com.docker.network.bridge.name: docker1# 可以自己指定网段# ipam:# driver: default# config:# - subnet: 192.168.200.0/24# gateway: 192.168.200.1
核心配置是这个:
...driver: bridgedriver_opts:com.docker.network.bridge.name: docker1
在配置完docker1
网络后,可以在dockerman中看到父接口:
接着去设置防火墙,如图:
重启防火墙,这时进compose启动的容器内部就可以正常访问网络了~