【问题标题】:Can't access Wordpress installed in Docker container无法访问安装在 Docker 容器中的 Wordpress
【发布时间】:2018-08-16 13:30:29
【问题描述】:

刚接触 Docker 并且不完全理解它,如果我的表达令人困惑/错误,请多多包涵。我在 Azure 上有一个分配了公共 IP 地址的 Ubuntu 机器。然后我把腻子塞进盒子里,安装apache、php。我还安装了 Docker 和 Docker-compose。我正在关注this official tutorial 安装 wordpress(在端口 8000 上)。安装完成后,我可以在http://xxx.xxx.xxx.xxx 看到默认的 apache ubunto 页面,但我无法访问http://xxx.xxx.xxx.xxx:8000 的网站。无法访问的原因是什么?我找不到任何相关的教程,因为大多数教程都是在 localhost 上进行的,因此不可参考。这是我的 docker-compose.yml 文件:

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       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
volumes:
    db_data:

docker ps 输出如下:

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES
07d669b9f95e        phpmyadmin/phpmyadmin   "/run.sh supervisord…"   10 hours ago        Up 10 hours         9000/tcp, 0.0.0.0:8080->80/tcp   wp_phpmyadmin_1
5ff939494739        wordpress:latest        "docker-entrypoint.s…"   11 hours ago        Up 11 hours         0.0.0.0:8000->80/tcp             wp_wordpress_1
479826f7cfb8        mysql:5.7               "docker-entrypoint.s…"   11 hours ago        Up 11 hours         3306/tcp, 33060/tcp              wp_db_1

解决方案:最后我设法通过在 Azure 中打开端口使其工作。

【问题讨论】:

  • 你能显示你的docker ps 命令的结果吗?另外,您在哪个操作系统上运行 Docker?
  • @Mornor 为 docker ps 结果编辑

标签: wordpress docker docker-compose


【解决方案1】:

问题不在于 docker,只要端口暴露,你可以在主机中看到内容

问题可能出在主机上,应该暴露 8000 端口

我不熟悉 Azure,但我猜端口 80 是默认暴露的,所以尝试更改

 ports:
   - "8000:80"

 ports:
   - "80:80"

并使用端口 80(这是 http 默认)调用机器

【讨论】:

  • 当我将其更改为 80 时得到这个:ERROR: for wp_wordpress_1 Cannot start service wordpress: driver failed programming external connectivity on endpoint wp_wordpress_1 (xxxxxxxxxxxxxx): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
猜你喜欢
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2016-03-18
  • 2018-08-09
  • 1970-01-01
  • 2021-04-06
相关资源
最近更新 更多