如何创建配置了apache的centos的Docker映像?
我必须创建centos base Docker映像,并且需要在其中安装apache。我创建了一个docker文件,内容如下:如何创建配置了apache的centos的Docker映像?,apache,docker,centos,Apache,Docker,Centos,我必须创建centos base Docker映像,并且需要在其中安装apache。我创建了一个docker文件,内容如下: FROM centos:7 Run yum update && yum install httpd httpd-tools -y 需要做的事情:当我运行容器时,它应该指向浏览器,比如localhost:8090。我可以得到同样的步骤吗 有人能帮忙吗?首先我们需要调整Dockerfile中的一些内容: FROM centos:7 RUN yum up
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前台)
然后在与docker文件相同的目录中,发布docker构建
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,您不需要覆盖它。首先,我们需要调整docker文件中的一些内容:
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前台)
然后在与docker文件相同的目录中,发布docker构建
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配置时,它失败并出现以下错误:
错误:服务“服务器”构建失败:命令“/bin/sh-c yum update&&yum install-httpd-httpd tools-y”返回一个非零代码:1
但是,通过将-y
或-assumeyes
添加到yum update
,它就像一个符咒。谢谢,@Dockstar。当我第一次尝试使用临时Dockerfile配置时,它失败了,出现以下错误:错误:服务“server”无法生成:命令“/bin/sh-c yum update&&yum install httpd httpd tools-y”返回了非零代码:1
,通过将-y
或-assumeyes
添加到yum-update
,它就像一个符咒。谢谢,@Dockstar。