默认情况下,mysql侦听端口3306和33060。由于im启动了多个实例,所以我必须提供其他端口。
我设法将第一个映射到<3306>,但是我找不到第二个wordpress参数名称的任何文档,我只是找到了DB_HOST。
你知道我怎样才能映射第二个端口吗?
version: "3.9"
services:
db:
image: mysql:latest
volumes:
- wordpress_db_data:/var/lib/mysql
ports:
- "8002:3306"
- "8003:33060"
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "80:80"
restart: unless-stopped
environment:
DB_HOST: 8002
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
wordpress_db_data: {}
wordpress_data: {}发布于 2022-01-21 09:58:34
在对接-组合创建的桥接器网络上,直接使用集装箱港口.只有在从主机连接到容器时才使用映射的端口。
由于WordPress和MySQL在同一个网络上,所以您应该使用端口3306。如果要从主机连接到数据库,则只需要将MySQL端口映射到宿主端口。
而且,WordPress没有使用端口33060连接到MySQL,所以在WordPress端没有参数。
下面是一个应该工作的坞-撰写文件
version: "3.9"
services:
db:
image: mysql:latest
volumes:
- wordpress_db_data:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "80:80"
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
wordpress_db_data: {}
wordpress_data: {}注意,我已经删除了数据库上的端口映射,因为WordPress不需要它们才能工作。如果需要从主机连接到数据库,只需将它们添加回。通常3306端口就足够了。33060很少使用,AFAIK。
https://stackoverflow.com/questions/70799138
复制相似问题