我创建了一个docker容器并安装了mailpile开源电子邮件客户端。 在容器内运行mailpile二进制文件会将以下消息打印到STDOUT。
The Web interface address is: http://localhost:33411/
所以我在主机上打开了firefox并试了127.0.0.1:33411
。那没起效。
然后我查找了docker分配给容器的IP地址。
我通过在主机上运行以下命令来查找它,
docker inspect mp | grep IP
它说容器的IP地址为172.17.0.3
所以现在,我在我的主机上运行的firefox上尝试了172.17.0.3:33411
。它仍然无效。
然后我用docker stop mp
停止了容器。然后我将其提交给名为mp_image
的图像。我在主机上运行以下命令来进行提交。
docker commit mp mp_image
提交后,我创建了一个新的运行容器,但这次将容器的端口33411转发到主机的端口33411。我在主机上运行了以下命令,
docker run -i -t -p 33411:33411 --name "mailpile" mp_image /bin/bash
现在,一旦我进入容器,再次运行mailpile二进制文件并尝试从主机访问它。这次我在主机浏览器上使用了所有这些变体,
127.0.0.1:33411
172.17.0.3:33411
再次无法正常工作。现在我开始怀疑服务器是否首先在容器中运行。所以我进入了容器并做了wget 127.0.0.1:33411
。我得到了一个很好的index.html
文件。所以服务器正在运行..
此时我不知道该怎么做。有人可以请一点建议吗?
答案 0 :(得分:0)
构建Mailpile是为了仅从本地主机侦听端口33411。按照此处所述安装代理或隧道连接:https://github.com/mailpile/Mailpile/wiki/Accessing-The-GUI-Over-Internet