如何解决当我使用 traefik 启动许多 docker-compose 时,我的子网发生了变化
你好,
我想要几个使用 Docker-compose 和 Traefik 反向代理的 wordpress 实例。 我的每个 docker-compose 包括:
- 一个 wordpress 容器
- 一个 PhpMyAdmin 容器
- 一个 MySQL 容器
我的 Traefik 容器允许我对不同的 Web 容器使用自动 https 加密并且它可以工作。 我也可以毫无问题地启动 2 个 Wordpress 实例。
只有当我启动我的第三个 docker-compose 时,我的容器的子网被更新并且不再正确配置,这导致了我的网络问题。我的一些容器变得无法访问。
我不明白这个子网更改的原因。
我与你分享我的不同文件希望你能帮助我
谢谢大家!
Traefik : docker-compose.yaml
version: "3"
services:
reverse_proxy:
image: traefik:2.2
container_name: traefik
restart: unless-stopped
command:
--providers.docker
--entrypoints.web.address=:80
ports:
# The HTTP port
- "80:80"
# The HTTPS port
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yaml:/etc/traefik/traefik.yaml:ro
- ./custom:/etc/traefik/custom:ro
- certs:/letsencrypt
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`traefik.MYDOMAIN`)"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.entrypoints=websecure"
networks:
- default
volumes:
certs:
networks:
default:
external:
name: gateway
Traefik:traefik.yaml
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
http:
tls:
certResolver: myresolver
middlewares:
- SecHeaders@file
api:
dashboard: true
accessLog: {}
providers:
docker:
exposedByDefault: false
file:
directory: /etc/traefik/custom/
watch: true
certificatesResolvers:
myresolver:
acme:
email: "mail@MYDOMAIN"
storage: "/letsencrypt/acme.json"
tlsChallenge: {}
Wordpress1:docker-compose.yaml
version: '3'
services:
database:
image: mysql:5.7
container_name: bdd
volumes:
- ./BDD/file.sql:/docker-entrypoint-initdb.d/init.sql
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootxxx
MYSQL_DATABASE: database1
MYSQL_USER: user1
MYSQL_PASSWORD: xxx
networks:
- network1
labels:
- traefik.enable=false
phpmyadmin:
depends_on:
- database
image: phpmyadmin
container_name: pma
restart: always
environment:
PMA_HOST: database
MYSQL_PASSWORD: xxx
MYSQL_ROOT_PASSWORD: rootxxx
networks:
- default
- network1
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.phpmyadmin-first.entrypoints: websecure
traefik.http.routers.phpmyadmin-first.rule: 'Host(`phpmyadmin1.MYDOMAIN`)'
wordpress:
depends_on:
- database
image: wordpress:5.7.1-php7.3
container_name: wordpress
restart: always
volumes:
- ./WORDPRESS:/var/www/html
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: xxx
WORDPRESS_DB_NAME: database1
WORDPRESS_TABLE_PREFIX: wp_
networks:
- default
- network1
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.wordpress-first.entrypoints: websecure
traefik.http.routers.wordpress-first.rule: 'Host(`wordpress1.MYDOMAIN`)'
networks:
default:
external:
name: gateway
network1:
internal: true
volumes:
db_data:
Wordpress2:docker-compose.yaml
version: '3'
services:
database2:
image: mysql:5.7
container_name: bdd2
volumes:
- ./SQL/file.sql:/docker-entrypoint-initdb.d/init.sql
- db_data2:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootxxx2
MYSQL_DATABASE: databasemas2
MYSQL_USER: user2
MYSQL_PASSWORD: xxx2
networks:
- network2
labels:
- traefik.enable=false
phpmyadmin2:
depends_on:
- database2
image: phpmyadmin
container_name: pma2
restart: always
environment:
PMA_HOST: database2
MYSQL_PASSWORD: xxx2
MYSQL_ROOT_PASSWORD: rootxxx2
networks:
- default
- network2
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.phpmyadmin-second.entrypoints: websecure
traefik.http.routers.phpmyadmin-second.rule: 'Host(`phpmyadmin2.MYDOMAIN`)'
wordpress2:
depends_on:
- database2
image: wordpress:5.7.1-php7.3
container_name: wordpress2
restart: always
volumes:
- ./WP:/var/www/html
environment:
WORDPRESS_DB_HOST: database2:3306
WORDPRESS_DB_USER: user2
WORDPRESS_DB_PASSWORD: xxx2
WORDPRESS_DB_NAME: databasemas2
WORDPRESS_TABLE_PREFIX: wp_
networks:
- default
- network2
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.wordpress-second.entrypoints: websecure
traefik.http.routers.wordpress-second.rule: 'Host(`wordpress2.MYDOMAIN`)'
networks:
default:
external:
name: gateway
network2:
internal: true
volumes:
db_data2:
Wordpress3:docker-compose.yaml
version: '3'
services:
database3:
image: mysql:5.7
container_name: bdd3
volumes:
- ./DBSITE/file.sql:/docker-entrypoint-initdb.d/init.sql
- volume_database3:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootxxx3
MYSQL_DATABASE: db-editeur
MYSQL_USER: user3
MYSQL_PASSWORD: xxx3
networks:
- network3
labels:
- traefik.enable=false
phpmyadmin3:
depends_on:
- database3
image: phpmyadmin
container_name: pma3
restart: always
environment:
PMA_HOST: database3
MYSQL_PASSWORD: xxx3
MYSQL_ROOT_PASSWORD: rootxxx3
networks:
- default
- network3
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.phpmyadmin-third.entrypoints: websecure
traefik.http.routers.phpmyadmin-third.rule: 'Host(`phpmyadmin3.MYDOMAIN`)'
wordpress3:
depends_on:
- database3
image: wordpress:5.7.1-php7.3
container_name: wordpress3
restart: always
volumes:
- ./SITE:/var/www/html
environment:
WORDPRESS_DB_HOST: database3:3306
WORDPRESS_DB_USER: user3
WORDPRESS_DB_PASSWORD: xxx3
WORDPRESS_DB_NAME: db-editeur
WORDPRESS_TABLE_PREFIX: wp_
networks:
- default
- network3
labels:
traefik.enable: true
traefik.docker.network: default
traefik.http.routers.wordpress-third.entrypoints: websecure
traefik.http.routers.wordpress-third.rule: 'Host(`wordpress3.MYDOMAIN`)'
networks:
default:
external:
name: gateway
network3:
internal: true
volumes:
volume_database3:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。