映射端口,以便您可以从OSX主机访问docker运行的应用程序

时间:2014-02-08 23:35:52

标签: macos vagrant docker

我一直在玩Docker一段时间(通过Vagrant在OSX上),这非常好用。为了访问我在docker容器中运行的应用程序,我必须设置Vagrant以使用静态IP(“private_network”设置)。

虽然这很好用,但我觉得使用boot2docker的新方法更简单,更方便,因为我可以直接在OSX中运行docker。但是,如果我使用通常的端口转发运行docker,我会收到此错误:

docker run -p :5672 -p :15672 mikaelhg/docker-rabbitmq
2014/02/09 10:12:47 Error: start: Cannot start container fecd0f0225f49a889e63e9b113bff36305e9b9ab146ada6730d6cfffe9a10e0b: Process could not be started

那么如果我明确地将它映射到不同的主机端口,它就会启动

docker run -p 5000:5672 -p 15000:15672 mikaelhg/docker-rabbitmq

但是我无法在我的OSX主机中打开它。我知道这个设置与Vagrant不同,因为它不使用静态IP而是使用NAT但不知何故我无法找到有关如何从OSX主机访问我的应用程序的正确文档。

有人能指出正确的文档或给我一个示例我需要使用哪些设置来让boot2docker为我设置portforwarding?

1 个答案:

答案 0 :(得分:7)

如果您使用的是VirtualBox,请配置端口转发,如:

$ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port5000,tcp,,5000,,5672"
$ VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port5000,udp,,5000,,5672"

了解更多:
http://www.deadcodersociety.org/blog/forwarding-a-range-of-ports-in-virtualbox/ https://github.com/dotcloud/docker/issues/4007#issuecomment-34573044