mysql WordPress Docker容器无法连接到数据库

ne5o7dgx  于 2023-05-28  发布在  Mysql
关注(0)|答案(1)|浏览(263)

我正在使用下面的代码,但我的本地网站无法连接到数据库

docker run --name db \
   -p 90:3306 \
   --restart=always \
   --network wp-mysql-network \
   -e MYSQL_ROOT_PASSWORD=root \
   -e MYSQL_DATABASE=wordpress \
   -e MYSQL_USER=wpuser \
   -e MYSQL_PASSWORD=P@ssw0rd \
   -v mysql-demo3:/var/lib/mysql \
   -d mysql:latest
docker run --name wp-site1 \
   -d \
   --link db \
   -p 85:80 \
   -e WORDPRESS_HOST=db:90 \
   --network wp-mysql-network \
   -e MYSQL_DATABASE=wordpress \
   -e MYSQL_USER=wpuser \
   -e MYSQL_PASSWORD=P@ssw0rd \
   -v wp-data-demo3:/var/www/html \
   wordpress:latest
xfyts7mz

xfyts7mz1#

当你运行类似
docker run -p 90:3306将内部端口3306暴露给机器(运行Docker的机器)端口90。
当您将一个容器连接到另一个容器时,您应该使用内部端口,以便

docker run -d --name wp-site1 \
    --link db -p 85:80 \
    -e WORDPRESS_DB_HOST=db:3306 \
    --network wp-mysql-network \
    -e WORDPRESS_DB_NAME=wordpress \
    -e WORDPRESS_DB_USER=wpuser \
    -e WORDPRESS_DB_PASSWORD=P@ssw0rd \
    -v wp-data-demo3:/var/www/html wordpress:latest

此外,在您的情况下,您应该只暴露前端,而不是后端(数据库)。
如果你在HTTP上成功使用WordPress,我建议你看看Traefik来处理HTTPS连接。(下面的例子)。
https://graspingtech.com/wordpress-docker-compose/

编辑

1.创建依赖项

docker network create wp-mysql-network
docker volume create mysql-demo3
docker volume create wp-data-demo3

1.创建数据库示例

docker run --name db \
    --network wp-mysql-network \
    -v mysql-demo3:/var/lib/mysql \
    --restart=always \
    -e MYSQL_ROOT_PASSWORD=root \
    -e MYSQL_DATABASE=wordpress \
    -e MYSQL_USER=wpuser \
    -e MYSQL_PASSWORD=P@ssw0rd -d mysql:latest

1.创建连接到db的wordpress示例

docker run -d --name wp-site1 \
    --link db -p 85:80 \
    -e WORDPRESS_DB_HOST=db:3306 \
    --network wp-mysql-network \
    -e WORDPRESS_DB_NAME=wordpress \
    -e WORDPRESS_DB_USER=wpuser \
    -e WORDPRESS_DB_PASSWORD=P@ssw0rd \
    -v wp-data-demo3:/var/www/html wordpress:latest

1.连接到你的WordPress前端与您的Web浏览器

http://localhost:85

相关问题