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

前端之家收集整理的这篇文章主要介绍了apache – 运行一个接受来自主机的流量的Docker容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下配置:
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
原文链接:https://www.f2er.com/docker/437058.html

猜你在找的Docker相关文章