【问题标题】:How to create a Docker image of centos provisioned with apache?如何创建使用 apache 配置的 centos 的 Docker 映像?
【发布时间】:2020-12-09 07:04:03
【问题描述】:

我必须创建一个 centos 基础 Docker 映像,并且需要在其中安装 apache。我创建了一个包含以下内容的 docker 文件:

FROM centos:7
Run yum update && yum install httpd httpd-tools -y

需要做的:当我运行容器时,它应该指向浏览器,比如 localhost:8090。我可以获取执行相同操作的步骤吗?

有人可以帮忙吗?

【问题讨论】:

标签: apache docker centos


【解决方案1】:

首先我们需要在 Dockerfile 中调整一些东西:

FROM    centos:7
RUN yum update -y && yum install httpd httpd-tools -y

EXPOSE  80

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

Expose 指令将告诉 Docker 引擎 80 应该可用于发布到主机。由于服务不在容器中运行,仅在应用程序中运行,我们将在前台手动启动 httpd (/usr/sbin/httpd -D FOREGROUND)。

然后在与docker文件相同的目录下,发出docker build

docker build -t "centosapache:0.1" .

你的 docker run 命令看起来像

docker run -d -p 8090:80 -v /home/user/web:/var/www/html centosapache:0.1

-d 将其初始化为分离或守护程序模式 -p 将主机的 8090 端口映射到容器的 80 端口 -v 将你主机的目录 /home/user/web 映射到容器的 /var/www/html (可选,但对 PHP 很好)

然后我们只需指定要运行的映像和版本。由于 docker 文件有一个默认的启动 apache 的 CMD,所以你不需要覆盖它。

【讨论】:

  • 当我第一次尝试使用临时 Dockerfile 配置时,它失败并出现以下错误:ERROR: Service 'server' failed to build: The command '/bin/sh -c yum update && yum install httpd httpd-tools -y' returned a non-zero code: 1 但是,通过将-y--assumeyes 添加到yum update,它就像一个魅力.谢谢,@Dockstar。
猜你喜欢
  • 2014-06-10
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 2015-09-17
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 2020-07-15
相关资源
最近更新 更多