无法访问在 Docker 中配置的 wordpress,即使其状态正在运行

Posted

技术标签:

【中文标题】无法访问在 Docker 中配置的 wordpress,即使其状态正在运行【英文标题】:Can not access wordpress configured in Docker even though its status is running 【发布时间】:2015-11-20 06:32:27 【问题描述】:

我按照此处的说明在 Docker 中创建一个 wordpress 站点: http://www.sitepoint.com/how-to-use-the-official-docker-wordpress-image/

1.pull&run mysql镜像: docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -d mysql:5.7

2.pull&run wordpress image 并将 mysql 容器链接到它: docker run -e WORDPRESS_DB_PASSWORD=password -d --name wordpress --link wordpressdb:mysql wordpress

我可以看到这两个容器正在运行:

我可以检查 wordpress 容器并尝试获取 ip 和端口:

另外,当我检查 mysql 容器时,我无法使用主机/ip 登录 mysql 浏览器,

********编辑-添加 -p *******************

我使用 -p 运行 wordpress 容器

******************再次编辑********************

********************更新********************



***********终于我成功了*******************

最后,如果我在 -p 命令中运行具有特定 ip 的容器,例如 127.0.0.1:

 -p 127.0.0.1:8080:80

它不会工作

如果我不指定 ip,或者使用 0.0.0.0 作为 ip,它将起作用:

-p 0.0.0.0:8080:80

【问题讨论】:

【参考方案1】:

我在您的docker inspect 中看到“PortMapping:null”。

如果您不将任何端口映射到主机之一,您将无法访问所述端口。 以“Viewing our web application container”为例。

文档确实包括:

docker run -e WORDPRESS_DB_PASSWORD=password -d --name wordpress --link wordpressdb:mysql -p 127.0.0.2:8080:80 -v "$PWD/":/var/www/html  wordpress

注意-p 127.0.0.2:8080:80 部分。 正如GHETTO.CHiLD 提到的in the comments,访问服务的url 将使用docker 机器的ip $(docker machine ip):8080

正如 OP 所说,使用广播映射更容易:

-p 8080:80 => $(docker-machine ip):8080 有效

【讨论】:

嗨 von,我刚刚尝试使用 -p 运行 wordpress 容器,但仍然无法正常工作,请检查我的更新编辑,谢谢 @Qing 尝试更通用的映射:-p 8080:80 @Qing 一旦你映射了-p 8080:80 这样的容器端口,你将希望通过转到运行 docker 的机器的 ip 来访问 word press,而不是 docker 容器 ip。 对不起,我对这个概念很陌生,我如何检查我的 docker 机器的 ip?我试过像ifconfig一样运行cmd,我找到了vboxnet,但是我用了ip:8080后还是不行,请检查我的更新,谢谢 @Qing 键入docker-machine ip dev(如github.com/docker/machine/blob/… 和github.com/docker/machine/blob/…)

以上是关于无法访问在 Docker 中配置的 wordpress,即使其状态正在运行的主要内容,如果未能解决你的问题,请参考以下文章

docker配置代理访问

使用docker容器时 不能访问互联网

docker常见问题

Docker - Jenkins 无法访问 sonarqube(通过 localhost/127.0.0.1:9000)

Docker容器中的服务无法访问,网络不通报No route to host的解决方案

Docker的RabbitMQ启动后,无法通过浏览器访问15672端口打开界面