Curl 访问在流浪者中运行的Docker容器

Curl 访问在流浪者中运行的Docker容器,curl,docker,vagrant,docker-compose,vagrantfile,Curl,Docker,Vagrant,Docker Compose,Vagrantfile,嗨,我正在使用vagrant和docker compose运行一个简单的web应用程序。它可以在OSX上正常工作,但是当在一个流浪的盒子(ubuntu/trusty64)中运行时,它就不起作用了 我不想将docker提供程序用于vagrant,因为我正在测试另一种部署类型。这应该是可行的,因为我正在做完全相同的事情,因为我的本地机器 为什么我甚至不能在应用程序上卷曲本地主机端口80(或我尝试过的任何端口) root@vagrant-ubuntu-trusty-64:/home/vagrant/s

嗨,我正在使用vagrant和docker compose运行一个简单的web应用程序。它可以在OSX上正常工作,但是当在一个流浪的盒子(ubuntu/trusty64)中运行时,它就不起作用了

我不想将docker提供程序用于vagrant,因为我正在测试另一种部署类型。这应该是可行的,因为我正在做完全相同的事情,因为我的本地机器

为什么我甚至不能在应用程序上卷曲本地主机端口80(或我尝试过的任何端口)

root@vagrant-ubuntu-trusty-64:/home/vagrant/slack-challenge# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                  NAMES
03f4740887d7        slackchallenge_nginx   "/bin/sh -c 'servi..."   43 minutes ago      Up 12 minutes       0.0.0.0:8080->80/tcp   slackchallenge_nginx_1
ed80831b69a9        slackchallenge_fpm     "/usr/bin/supervisord"   43 minutes ago      Up 12 minutes       9000/tcp               slackchallenge_fpm_1
140ea815843b        mariadb                "docker-entrypoint..."   43 minutes ago      Up 12 minutes       3306/tcp               slackchallenge_db_1
root@vagrant-ubuntu-trusty-64:/home/vagrant/slack-challenge# curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
root@vagrant-ubuntu-trusty-64:/home/vagrant/slack-challenge#

似乎有些网络化。

是的,我只需要启用端口转发,如下所示:

config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"
现在我可以连接我的本地端口80,它实际上在我的docker容器中,运行在我的vagrant vm中,有点混乱

$ curl localhost:8080
Hello, world!

是的,我只需要启用端口转发,如下所示:

config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"
现在我可以连接我的本地端口80,它实际上在我的docker容器中,运行在我的vagrant vm中,有点混乱

$ curl localhost:8080
Hello, world!

在您的示例中,您运行的唯一具有已发布报告的容器如下所示:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                  NAMES
03f4740887d7        slackchallenge_nginx   "/bin/sh -c 'servi..."   43 minutes ago      Up 12 minutes       0.0.0.0:8080->80/tcp   slackchallenge_nginx_1
在PORTS列下,这表示主机的端口8080映射到容器的端口80。在这个设置中,我希望
curl localhost:8080
能够工作,而不是
curl localhost
,因为设置为侦听的是主机的端口8080


如果希望容器的端口80在主机端口80上可访问,则需要将端口80发布到端口80。

在示例中,看起来只有运行已发布报告的容器如下:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                  NAMES
03f4740887d7        slackchallenge_nginx   "/bin/sh -c 'servi..."   43 minutes ago      Up 12 minutes       0.0.0.0:8080->80/tcp   slackchallenge_nginx_1
在PORTS列下,这表示主机的端口8080映射到容器的端口80。在这个设置中,我希望
curl localhost:8080
能够工作,而不是
curl localhost
,因为设置为侦听的是主机的端口8080

如果希望在主机的端口80上访问容器的端口80,则需要将端口80发布到端口80