无法访问在 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 - Jenkins 无法访问 sonarqube(通过 localhost/127.0.0.1:9000)