微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker:当连接到发布的端口时连接被拒绝

我是docker工的新手。 我正在创build一个Hello,World的例子。 我所要做的就是在Docker中调用Apache,然后从主机上查看认网站。

Dockerfile

FROM centos:latest RUN yum install epel-release -y RUN yum install wget -y RUN yum install httpd -y EXPOSE 80 ENTRYPOINT ["/usr/sbin/httpd","-D","FOREGROUND"]

然后我build立它: > docker build .

然后我标记它:

该网站负载很重+ ROR

在网站根目录和子目录中使用.htaccess中的mod_rewrite

安装扩展后在PHP中激活mbstring

无法通过外部IP地址访问Apache Web服务器

PHP Symfony – 连接重置(Windows)

docker tag 17283f566320 my:apache

然后我运行它:

> docker run -p 80:9191 my:apache AH00558: httpd: Could not reliably determine the server's fully qualified domain name,using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

然后运行….

在另一个terminal窗口中,我试图发出curl命令来查看认网站。

> curl -XGET http://0.0.0.0:9191 curl: (7) Failed to connect to 0.0.0.0 port 9191: Connection refused > curl -XGET http://localhost:9191 curl: (7) Failed to connect to localhost port 9191: Connection refused > curl -XGET http://127.0.0.1:9191 curl: (7) Failed to connect to 127.0.0.1 port 9191: Connection refused

或者我尝试本地主机

只是为了确保我的端口正确,我运行这个:

> docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5aed4063b1f6 my:apachep "/usr/sbin/httpd -DF" 43 seconds ago Up 42 seconds 80/tcp,0.0.0.0:80->9191/tcp angry_hodgkin

httpd将无法启动,并没有错误

用Apache OFBiz设置POS

Linux的PHP Web服务器+ Apache或Nginx

防止从Apache访问文件没有.htaccess

Apache 2站点 – 可用configuration

尽管您在本地机器中创建了容器。 这些实际上运行在不同的机器上(一台虚拟机)

首先,检查你的码头机(虚拟机)的IP是多少

$docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default * virtualBox Running tcp://192.168.99.100

然后运行curl命令查看容器内的apache web服务器上的认网站

curl http://192.168.99.100:9191

如果你在Ubuntu机器上运行docker作为本机,你应该可以通过localhost访问你的容器。 如果您使用的是Mac或Windows,您的Docker容器不是在本地主机上运行,​​而是在其IP上运行。 你可以通过命令docker inspect <container id> | grep IPAddress来获得你的容器ip docker inspect <container id> | grep IPAddress或者如果您使用的是docker-machine ip <docker_machine_name>相关信息:

http://networkstatic.net/10-examples-of-how-to-get-docker-container-ip-address/

https://docs.docker.com/machine/reference/ip/

如何从主机获取Docker容器的IP地址?

所以你的卷曲调用应该是这样curl <container_ip>:<container_exposed_port>

你也可以在构建命令上标记你的图像,像这样: docker build -t my:image .

一个技巧,你可以通过组合yum install命令来优化你的dockerfile:

RUN yum install -y epel-release wget httpd

http://blog.tutum.co/2014/10/22/how-to-optimize-your-dockerfile/

谢谢大家。 我的港口倒过来了:

> docker run -p 9191:80 my:apache

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐