apache - 如何创建使用 apache 配置的 centos 的 Docker 镜像?

标签 apache docker centos

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

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

需要做的:当我运行容器时,它应该指向浏览器,比如 localhost:8090。我可以得到做同样的步骤吗?

有人可以帮忙吗?

最佳答案

首先我们需要在 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,因此您无需覆盖它。

关于apache - 如何创建使用 apache 配置的 centos 的 Docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40948369/

相关文章:

macos - Wercker在MacOS上因PANIC打开文件过多而崩溃

docker - 本地多个数据库

python-3.x - 如何让 Python3 找到已安装的模块?

java - 如何在 Apache 访问日志中包含精确到毫秒的时间格式

apache - .htaccess - 将域/lang/重定向到每种语言的子域

apache - 服务器错误 : Connection reset by peer | End of script output before headers

docker - 将脚本运行到容器中,然后将文件从容器复制到主机

linux - PC 未自动与 NTP 服务器同步时间 (Centos 6)

java - Neo4j 无法在 Centos 上启动

apache - 使用 htaccess 进行多域重定向