【问题标题】:Unable to connect to Docker Nginx build无法连接到 Docker Nginx 构建
【发布时间】:2015-05-12 22:36:23
【问题描述】:

我正在尝试使用来自 Dockerhub 的 Docker Nginx 映像托管一个简单的静态站点:https://registry.hub.docker.com/_/nginx/

关于我的设置的说明,我在 OSX 上使用 boot2docker。

我已按照说明操作,甚至无法连接到正在运行的容器:

MacBook-Pro:LifeIT-war-games-frontend ryan$ docker build -t wargames-front-end .
Sending build context to Docker daemon 813.6 kB
Sending build context to Docker daemon 
Step 0 : FROM nginx
 ---> 42a3cf88f3f0
Step 1 : COPY app /usr/share/nginx/html
 ---> Using cache
 ---> 61402e6eb300
Successfully built 61402e6eb300
MacBook-Pro:LifeIT-war-games-frontend ryan$ docker run --name wargames-front-end -d -p 8080:8080 wargames-front-end
9f7daa48a25bdc09e4398fed5d846dd0eb4ee234bcfe89744268bee3e5706e54
MacBook-Pro:LifeIT-war-games-frontend ryan$ curl localhost:8080
curl: (52) Empty reply from server
MacBook-Pro:LifeIT-war-games-frontend ryan$ docker ps -a
CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                                     NAMES
9f7daa48a25b        wargames-front-end:latest   "nginx -g 'daemon of   3 minutes ago       Up 3 minutes        80/tcp, 0.0.0.0:8080->8080/tcp, 443/tcp   wargames-front-end   

【问题讨论】:

    标签: nginx docker boot2docker dockerfile


    【解决方案1】:

    使用 boot2docker ip 代替 localhost。首先执行boot2docker ip 并使用该IP: <your-b2d-ip>:8080。您还需要确保在 VirtualBox 中为 boot2docker 转发了端口 8080。

    【讨论】:

      【解决方案2】:

      这里是连接nginx docker容器服务的方法:

      docker ps            # confirm nginx is running, which you have done.
      docker port wargames-front-end  # get the ports, for example: 80/tcp, 0.0.0.0:8080->8080/tcp, 443/tcp
      boot2docker ip       # get the IP address, for example: 192.168.59.103
      

      所以现在,您应该可以连接到:

      http://192.168.59.103:8080
      https://192.168.59.103:8080
      

      【讨论】:

      【解决方案3】:

      这是我如何让它工作的。

      docker kill wargames-front-end
      docker rm wargames-front-end
      docker run --name wargames-front-end -d -p 8080:80 wargames-front-end
      

      然后我去我的 virtualbox 并设置这些设置:

      【讨论】:

      • 在您的示例中,您正在转发8080:80,而在虚拟框中,您正在转发8001。只是一个说明:)
      • 我实际上为我的示例更改了它,因为我决定使用不同的端口。但这不是问题!
      猜你喜欢
      • 1970-01-01
      • 2017-03-23
      • 2018-02-25
      • 2019-12-15
      • 1970-01-01
      • 2023-03-02
      • 2020-09-18
      • 2020-01-19
      相关资源
      最近更新 更多