【发布时间】:2021-02-23 09:50:11
【问题描述】:
我试图弄清楚 docker network 和那种东西是如何工作的。 所以这是我的设置,我有 2 个带有 WordPress 和 mysql 的 docker 容器。这两个需要能够通过直接的数据库连接相互交谈。我也有指向它们的域。 因此,我尝试使用 docker nginx 代理对其进行设置,但是当我尝试通过域访问该站点时,我得到了 502 bat 网关。
所以我的 docker ngxinx 代理撰写文件看起来像这样,但端口不同:
version: "3.1"
services:
nginx-proxy:
image: jwilder/nginx-proxy:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./certs:/etc/nginx/certs
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: unless-stopped
networks:
default:
external:
name: nginx-proxy
我的两个 WordPress 容器看起来都是这样的:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
VIRTUAL_HOST: wp1.local
VIRTUAL_PORT: 3000
volumes:
- ./wp:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
expose:
- 3000
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
ports:
- "8086:3306"
mailhog:
image: mailhog/mailhog
ports:
- "1025:1025" # smtp server
- "8025:8025" # web ui
networks:
default:
external:
name: nginx-proxy
volumes:
db:
我已将 127.0.0.1 wp1 添加到 /etc/hosts
但是当我启动代理和其中一个 WP 容器时,我的网关出现问题。我不知道如何前进。也许这甚至不是正确的方法。因为我要解决的问题是 wp2 需要能够通过自定义 pdo 连接连接到 wp1 数据库。
我试图尽可能地解释清楚,但这对我来说是一个关于 docker 网络的新领域。另外我正在使用 wsl2 为 windows 运行 docker
【问题讨论】:
标签: wordpress docker nginx docker-compose