加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

apache – 运行一个接受来自主机的流量的Docker容器

发布时间:2020-12-16 03:54:11 所属栏目:安全 来源:网络整理
导读:我有以下配置: Dockerfile FROM centos MAINTAINER Eduar Tua run-apache.sh脚本: #!/bin/bashrm -rf /run/httpd/* /tmp/httpd*exec /usr/sbin/apachectl -D FOREGROUND 然后我建立图像: sudo docker build --rm -t platzi/httpd . 然后 sudo docker run

我有以下配置:
Dockerfile

FROM centos  
MAINTAINER Eduar Tua 

run-apache.sh脚本:

#!/bin/bash

rm -rf /run/httpd/* /tmp/httpd*

exec /usr/sbin/apachectl -D FOREGROUND

然后我建立图像:

sudo docker build --rm -t platzi/httpd .  

然后

sudo docker run -d -p 80:80 platzi/httpd

之后,当我尝试运行容器接受80端口中主机的连接时,我得到:

67ed31b50133adc7c745308058af3a6586a34ca9ac53299d721449dfa4996657
FATA[0002] Error response from daemon: Cannot start container     67ed31b50133adc7c745308058af3a6586a34ca9ac53299d721449dfa4996657: Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

有帮助吗?

错误似乎很清楚:

FATA[0002] Error response from daemon: Cannot start container 67ed31b50133adc7c745308058af3a6586a34ca9ac53299d721449dfa4996657: Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

它说,“地址已在使用中”.这意味着您系统上的某些东西 – 可能是像Apache这样的Web服务器 – 已经在端口80上侦听.您将需要:

>停止Web服务器,
>在-p参数中选择另一个主机端口到docker run或
>只需删除-p参数即可.

由于Docker无法设置请求的端口转发,因此无法启动容器.

选项(a)和(b)都允许容器绑定到主机上的端口80.仅当您要从主机以外的其他位置访问容器时,才需要执行此操作.

如果您只想从docker主机访问容器但又不希望在本地网络上公开容器,则选项(c)非常有用.在这种情况下,您将使用docker分配的容器IP地址,您可以通过运行docker inspect并仔细阅读输出来获取,或者只运行:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读