无法可靠地确定服务器的完全限定域名,使用172.17.0.2 for ServerName

时间:2018-01-26 22:26:39

标签: amazon-web-services docker dockerfile

我正在尝试通过docker在我的EC2 Amazon Linux实例上启动Web服务器, 我正在流动这个tutorial ,这是我的Dockerfile:

FROM ubuntu:12.04

# Install dependencies
RUN apt-get update -y
RUN apt-get install -y apache2

# Install apache and write hello world message
RUN echo "Hello World!" > /var/www/index.html

# Configure apache
RUN a2enmod rewrite
RUN chown -R www-data:www-data /var/www
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D",  "FOREGROUND"]

在运行我的“测试”图像$ docker run -p 80:80 test

之后的问题

触发以下错误:

  

apache2:无法可靠地确定服务器的完全限定   域名,使用172.17.0.2 for ServerName

为什么172.17.0.2,我的公共IP地址是34.244.33.171,这很奇怪! 即使在通过我的公共IP地址访问网络服务器之后,似乎没有任何工作! 我认为问题在于172.17.0.2,因为docker使用172.17.0.1/16作为默认的网桥。

如果有人可以帮助我,我将非常感激。

2 个答案:

答案 0 :(得分:1)

问题已经解决:
1- Firstable,我们需要在亚马逊网络服务上编辑安全组以启用80个招标 2-秒,docker run命令行应如下所示:docker run -d -p "0.0.0.0:80:80" -h "default" --name="default" -it test
主机名-h-it指定我们的图片,如果我们需要为容器指定名称,我们只需使用--name-d即可在后台运行容器并打印容器ID。 “0.0.0.0”可以访问机器的所有IP地址:因此将暴露127.0.0.1和公共IP。

答案 1 :(得分:0)

我也被困在这里了!然后我意识到,在教程告诉您运行docker run -p 80:80 hello-world的步骤下,它会说明以下内容:

  

Apache Web服务器的输出显示在终端窗口中。 您可以忽略“无法可靠地确定服务器的完全限定域名”消息。(强调添加)

然后教程继续这样说:

  

如果您使用的是EC2实例,则这是服务器的公共DNS值,该值与您使用SSH连接到实例的地址相同。确保实例的安全组允许端口80上的入站流量。

你真的应该能够使用你的公共IP并看到实例正在运行。 34.244.33.171是您的公共DNS值吗?如果您不确定,请here's一些有用的文档。