boot2docker 用的Vbox,所以用VBox的命令做NAT
#先要停掉所有的容器
docker ps -a -q | xargs docker stop
#停到boot2docker
boot2docker stop
#如果容器的端口是 8080的话 (docker -p 18080:8080)
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,18080,,18080";
#重启boot2docker 虚拟机
boot2docker start
#重启你自己的容器
。。。
现在可以在其他局域网机器通过 “本地IP+18080” 就可以访问到虚拟机里面容器的服务了
PS:开放10000到20000的端口
for i in {10000..20000}; do
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$i,tcp,,$i,,$i";VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$i,udp,,$i,,$i";done