当前位置: 首页 > 知识库问答 >
问题:

WordPress Docker容器无法连接到DB

施季
2023-03-14

我正在使用以下代码,但我的本地站点无法连接到DB

docker run--name db-p 90:3306--restart=always--network wp mysql network-e mysql\u ROOT\u PASSWORD=ROOT-e mysql\u DATABASE=wordpress-e mysql\u USER=wpuser-e mysql\u PASSWORD=P@ssw0rd-v mysql-demo3:/var/lib/mysql-d mysql:latest

docker run-d--name wp-site1--link db-p85: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

共有1个答案

费承载
2023-03-14

当你像这样跑的时候

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/

>

  • 创建依赖关系

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

    创建数据库实例

    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 
    

    创建连接到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
    

    使用web浏览器连接到wordpress前端

    http://localhost:85
    

  •  类似资料:
    • 我正试图从PHP容器连接到容器化的MySQL数据库,虽然同一网络上的所有容器都是如此,但问题是,当我点击

    • 我已经创建了一个MySQL数据库的映像,并在容器中运行它。我希望它在端口3406/3407上运行,因此我调用docker run命令如下所示: 如果我看我的容器,它看起来是这样的: 我非常想连接到我的数据库现在,但我似乎不能使我的URL工作。 这是我的URL的样子:

    • 问题内容: 我有用于创建mysql映像的docker- compose文件,并将端口公开给3306,但是当我尝试安装CMS时,出现了无法连接数据库的错误。我尝试扫描端口3306,并向我显示它已打开,因此mysql正在运行。 为什么两个Docker容器彼此看不到? 这是我的docker-compose文件: 问题答案: 要连接到数据库,请使用您作为主机名提供的链接/别名。因此,您的CMS可以使用主机

    • 我有zipkin服务器作为Spring Boot应用程序运行。我已经将jar导出到docker容器。 我已经探索过这个环节。

    • 我有一个带有Node.js应用程序的Docker容器和一个运行在服务器上的Redis数据库(不在容器中)。在容器中,当应用程序启动时,我无法连接到DB,并且我收到以下错误:Redis连接到127.0.0.1:6379失败-连接EConRefuse127.0.0.1:6379,但我不明白为什么,因为如果我在服务器上打开Redis cli并用pong进行ping,它会应答,因此DB启动。

    • 相关帖子:1)docker postgres pgadmin本地连接 2)https://coderwall.com/p/qsr3yq/postgresql-with-docker-on-os-x(在示例中没有填写“name”条目) 有两种方法来完成这个任务,我使用正式的postgres 方法一: 并使用 然后使用pgAdmin选项卡属性填充信息连接