全新的Ubuntu 14.04.2 Docker容器+ Nginx:端口80上的连接被拒绝

时间:2015-05-21 13:18:16

标签: ubuntu nginx docker

我按照Digital Ocean's "How To Install Nginx on Ubuntu 14.04 LTS"上的说明进行操作,该说明指出Nginx应该在安装后立即运行,但是以下Dockerfile:

FROM ubuntu:14.04.2
RUN apt-get update -y
RUN apt-get -y install curl
RUN apt-get -y install nginx
RUN curl http://127.0.0.1 | grep "Welcome to nginx!"

给了我这个错误:

curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused

重现这一点:

  • 确保您的主机系统上安装了Docker
  • 将上面的代码插入/whatever/path/Dockerfile
  • 输入'cd / whatever / path /&& Docker build。'

这将使用Ubuntu构建docker容器,安装Nginx,然后尝试连接到127.0.0.1:80返回Nginx欢迎页面。这就是“连接被拒绝”错误发生的地方。

我的问题是:如何在我的容器中调用“curl http://127.0.0.1并获得回复?”

我的项目中的这个问题是https://github.com/dcycleproject/dcyclebox/issues/1

2 个答案:

答案 0 :(得分:1)

关于数字海洋谈论操作系统的说明,这些操作系统没有在docker容器中运行(他们不应该)。构建映像时,只需安装必要的软件。然后你应该根据这个图像运行容器 - 通常只有一个进程在容器中运行。查看官方nginx图像,例如 - https://github.com/dockerfile/nginx/blob/master/Dockerfile

在不同的RUN命令中运行apt-get update和apt-get install也是一种不好的做法 - https://docs.docker.com/articles/dockerfile_best-practices/#run

答案 1 :(得分:1)

不要忘记先nginx开始:

RUN service nginx start && curl http://127.0.0.1 | grep "Welcome to nginx!"