以下是我的尝试:
我的目标:在容器中运行韵律XMPP服务器,由我的(尚未取消的)本地开发环境访问。
我安装了韵律XMPP服务器 - 这就是我尝试用作本地开发的容器。
它在这里停靠:
https://github.com/lloydwatkin/prosody-docker
我按照文档运行了
docker run -d prosody/prosody --name prosody -p 5222:5222
我检查了韵律与docker exec -t -i /bin/bash
docker ps
表示容器正在运行,转发到5222。
但是,在我的Mac本地shell上,telnet到端口5222上的boot2docker ip无法连接。
我试过这个https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md
但我无法让它发挥作用。
为了增加我的困惑,最新的docker.com文档说明端口转发应该可以在容器端口重定向下工作:
答案 0 :(得分:1)
针对韵律的docker容器文档中存在错误。 params的正确顺序是:
docker run -d --name prosody -p 5222:5222 prosody/prosody
没有错误处理,因此很难识别。
答案 1 :(得分:0)
尝试在终端中运行此命令,以将来自本地计算机端口5200到5299的通信转发到VirtualBox的端口:
for i in {5200..5299}; do VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i”; VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$i,udp,,$i,,$i";done