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

如何使用docker容器作为apache服务器?

发布时间:2020-12-16 03:54:03 所属栏目:安全 来源:网络整理
导读:我刚刚开始使用docker,并遵循以下教程:https://docs.docker.com/engine/admin/using_supervisord/ FROM ubuntu:14.04RUN apt-get update apt-get upgradeRUN apt-get install -y openssh-server apache2 supervisorRUN mkdir -p /var/lock/apache2 /var/run

我刚刚开始使用docker,并遵循以下教程:https://docs.docker.com/engine/admin/using_supervisord/

FROM ubuntu:14.04
RUN apt-get update && apt-get upgrade
RUN apt-get install -y openssh-server apache2 supervisor
RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 22 80
CMD ["/usr/bin/supervisord"]

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:apache2]
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"

构建并运行:

sudo docker build -t 

我的问题是,当docker在我的服务器上运行IP http://88.xxx.x.xxx/时,如何从计算机上的浏览器访问docker容器内运行的apache localhost?我想使用docker容器作为Web服务器.

最佳答案
您将必须使用端口转发才能从外界访问您的码头接收器.

从Docker docs:

By default Docker containers can make connections to the outside world,but the outside world cannot connect to containers.

But if you want containers to accept incoming connections,you will need to provide special options when invoking docker run.

那么这是什么意思?您将必须在主机(通常为端口80)上指定端口,并将该端口上的所有连接转发到docker容器.由于您在docker容器中运行Apache,您可能希望将连接转发到docker容器上的端口80.

这最好通过docker运行命令的-p选项完成.

sudo docker run -p 80:80 -t -i 

-p 80:80的命令部分意味着将端口80从主机转发到容器上的端口80.

当您设置正确时,您可以使用浏览器冲浪到http://88.x.x.x,连接将按预期转发到容器.

Docker docs完全描述-p选项.有几种方法可以指定标志:

# Maps the provided host_port to the container_port but only 
# binds to the specific external interface
-p IP:host_port:container_port

# Maps the provided host_port to the container_port for all 
# external interfaces (all IP:s)
-p host_port:container_port

编辑:当这个问题最初发布时,Apache Web服务器没有正式的docker容器.现在,现有版本存在.

获取Apache并运行最简单的方法是使用official Docker container.您可以使用以下命令启动它:

$docker run -p 80:80 -dit --name my-app -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4

这样,您只需在文件系统上安装一个文件夹,以便在docker容器中可用,并将主机端口转发到容器端口,如上所述.

(编辑:李大同)

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

    推荐文章
      热点阅读