docker mysql wordpress 端口无法连接

Posted

技术标签:

【中文标题】docker mysql wordpress 端口无法连接【英文标题】:docker mysql wordpress port doesn't connect 【发布时间】:2019-09-18 16:33:56 【问题描述】:

我下载了 mysql 和 wordpress 图像。 Mysql 端口是

3306 本地主机:32781 33060 本地主机:32780

Wordpress 配置是

WORDPRESS_DB_HOST 192.168.99.100:32774

MYSQL_ROOT_PASSWORD 和 WORDPRESS_DB_PASSWORD 是一样的

我尝试使用

连接到 wordpress

http://192.168.99.100:32774/

我收到消息

无法访问此网站

mysql和wordpress的端口如何配置?

配置 MYSQL

wordpress

错误跟踪

【问题讨论】:

我认为您应该使用更多信息来改进您的问题,您是否有任何有关 wordpress 容器启动或连接到 mysql 容器的日志?您可以分享有关 docker run 或撰写文件的内容吗? justo 以确保您正确映射端口 【参考方案1】:

根据您在 docker 配置页面上可以找到的内容,您应该采用此示例并根据需要对其进行修改。 以下 docker-compose 文件将在一分钟内启动 wordpress: https://docs.docker.com/compose/wordpress/

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: 

从该文件中,您有各种选项,例如,使用 docker compose 工具 (https://docs.docker.com/compose),或者如果您有一个 swarm 正在运行,您可以使用 docker stack 命令(https://vsupalov.com/difference-docker-compose-and-docker-stack/),或者您可以划分两个元素的配置和创建单独的 Dockerfile(Docker 文件的配置与您在 docker-compose 上看到的不同,因此请获取您自己的信息)并分开启动它们,您应该首先启动 mysql,因为 wordpress 依赖于首先运行的 bbdd。

【讨论】:

我使用风筝。附上mysql和wordpress的配置 不是试图阻止你使用 kitematic,而是遗留下来的,Docker 建议使用 docker desktop 代替 docs.docker.com/kitematic/userguide【参考方案2】:

实现这一点的最简单方法是使用 docker-compose。这是一个例子:

version: '3.2'

services:
  database:
    image: mysql:5.7
    volumes:
      - my_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: password

  wordpress:
    depends_on:
      - database
    image: wordpress:php7.3-apache
    ports:
      - '8000:80'
    restart: always
    environment:
      WORDPRESS_DB_HOST: database:3306
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: password
    working_dir: /var/www/html
volumes:
  my_data: 

一些注意事项:数据库不会在主机上挂载任何端口,因为它不需要。如果您不想使用 docker-compose,您可以为此运行 docker run 命令,但是您必须为容器创建自己的网络并将它们附加到它。

Wordpress 将在http://localhost:8000 上提供。

WORDPRESS_DB_HOST 是与数据库的连接,无论如何您都无法通过 http 访问它。

希望对你有所帮助。

【讨论】:

以上是关于docker mysql wordpress 端口无法连接的主要内容,如果未能解决你的问题,请参考以下文章

Docker wordpress 多站点 - 要公开哪些端口?

为啥 mysql CLI 可以连接,而 WordPress 却不能?

docker-compose mysql 容器拒绝访问 wordpress 容器

docker-compose wordpress mysql连接被拒绝

Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例

Docker-Compose WordPress MySql 无法连接