我是 docker 新手,与网络专家相去甚远,但在尝试运行 docker 容器实例时我发现了一些奇怪现象(正确的词?)。我在 OSX 上运行 docker 并使用此处找到的文档进行设置:http: //viget.com/extend/how-to-use-docker-on-os-x-the-missing-guide
一切似乎都很顺利,然后我通过以下几行设置了端口转发规则:
for i in {49000..49900};
do VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i";
done
我可以通过使用 OSX 检查 Oracle VM VirtualBox Manager->Network->Adapter 1->Port Forwarding 中的配置来确认 boot2docker VM 实例。
然后我运行这个命令来获取容器。
docker run -d -P dockerhub.emory.edu/ecoi_trunk:2
我做了一个“docker ps”并得到这个信息。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f20bfefa2e97 dockerhub.emory.edu/ecoi_trunk:2 "/usr/sbin/apachectl 18 seconds ago Up 15 seconds 0.0.0.0:49153->443/tcp, 0.0.0.0:49154->80/tcp cranky_einstein
但是,当我运行“lsof -i :49153”时,我发现没有人在听。我也无法通过浏览器中的“l****host:49153”访问容器。它只是挂起。
奇怪的是,如果我通过以下命令明确设置端口(而不是允许 docker 分配一个):
docker run -d -p 49000:80 dockerhub.emory.edu/ecoi_trunk:2
它似乎有效(lsof -i:49000 显示 TCP LISTEN),我可以确认它正在侦听并且可以通过“l****host:49000”访问容器。但是,它非常缓慢。我不确定两者是否相关,但欢迎任何提示或想法。