2015-09-07 60 views
0

我希望与我的Mac在同一网络上的任何计算机都能够访问在我的Mac上运行的码头控制的Rails网络应用程序。无法从网络上的其他计算机浏览码头控制的网络应用程序

我的Mac(10.9.5)我的Rails 4.2.4的web应用程序运行在泊坞很好,当我通过泊坞窗ip和我指定的端口访问,192.168.99.100:3000

泊坞1.8。 1在Virtualbox 5.0.2下运行。

我使用泊坞窗,撰写和泊坞窗,compose.yml文件的相关部分是:

web: 
    build: . 
    command: 'bash -c ''bundle exec unicorn -p $PORT -c ./config/unicorn-local.rb''' 
    working_dir: /app/user 
    env_file: 
    - .docker_dev_env_config 
    - .docker_dev_env_personal 
    environment: 
    PORT: 3000 
    DATABASE_URL: 'postgres://postgres:@herokuPostgresql:5432/postgres' 
    ports: 
    - '3000:3000' 
    links: 
    - herokuPostgresql 

和我Dockerfile是

FROM heroku-ruby2.0.0 # a local image based on heroku/ruby with ruby 2.0.0 
EXPOSE 3000 
ENV widget foo 

在当地我的Mac的IP地址网络始终设置为192.168.0.33。

如何让本地网络上的测试人员通过192.168.0.33:3000访问正在运行的dockerized应用程序? (FWIW,如果我在Vagrant下运行我的Web应用程序 - 而不是Docker - 网络上的其他测试人员可以通过浏览192.168.0.33:3000来访问Web应用程序,我的Vagrant也在Virtualbox下运行,我的Vagrant文​​件包含config.vm.network :forwarded_port, guest: 3000, host: 3000,但包含config.vm.network :forwarded_port, guest: 3000, host: 3000我没有看到docker-compose.yml的任何等价物)

回答

0

使用docker-toolkit的Docker Quickstart Terminal应用程序时创建的'默认'Virtualbox没有除定义的ssh以外的任何端口。

在Mac上的解决方案,使用VirtualBox的与码头工人当是:

  • 运行VirtualBox的
  • 单击“默认”框(或哪一个框您泊坞窗设置使用)
  • 转到“设置>网络>适配器1
  • 点击“端口转发”
  • 创建一个新的规则之下FWD的3000例至3000 (一定要离开主机IP栏为空白)

setting up port forward on vagrant

1

您需要的端口从VM转发端口3000到localhost。为此,您可以运行以下脚本

VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port$3000,tcp,,$3000,,$3000"; 
    VBoxManage modifyvm "boot2docker-vm" --natpf1 "udp-port$3000,udp,,$3000,,$3000"; 

这将端口转发到您的本地主机。如果您想要转发到其他某个接口,则必须在该命令中提供该接口的IP地址。这是--natpf命令

[--natpf<1-N> [<rulename>],tcp|udp,[<hostip>],<hostport>,[<guestip>],<guestport>] 

所以,你可以相应地修改它的一般语法。 请参阅此进一步阅读。 Docker on Mac. The Missing Guide

相关问题