我必须创建一个 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/