无法启动带有apache php的Docker示例
我正在跟踪一个关于Docker的消息。我在Windows上运行,所以我已经安装了Docker for Windows并注册了中心 目前,我正在Docker上创建我的第一个Apache实例 在本教程之后,我创建了无法启动带有apache php的Docker示例,docker,Docker,我正在跟踪一个关于Docker的消息。我在Windows上运行,所以我已经安装了Docker for Windows并注册了中心 目前,我正在Docker上创建我的第一个Apache实例 在本教程之后,我创建了debian衍生工具的第一个Dockerfile并运行了容器。我的输出与教程一致(表示Windows提示符) 然后我学习了从容器运行Apache的教程 Dockerfile FROM debian RUN apt-get update &&\ apt-get -y
debian
衍生工具的第一个Dockerfile并运行了容器。我的输出与教程一致(
表示Windows提示符)
然后我学习了从容器运行Apache的教程
Dockerfile
FROM debian
RUN apt-get update &&\
apt-get -y install procps libapache2-mod-php
CMD service apache2 start
酷,是吗?但是当我运行容器时,什么也没有发生,容器本身也成功退出
D:\IdeaDevOps\dockers\apache2>docker run -it --name apache2 -v d:\IdeaDevOps\dockers\apache2:/var/www/html debian_apache2
[....] Starting Apache httpd web server: apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
. ok
>docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
09d5b4b3fa49 debian_apache2 "/bin/sh -c 'service…" 24 seconds ago Exited (0) 22 seconds ago apache2
8d1c4522aa30 mydebian "bash" 2 hours ago Exited (0) 2 hours ago elated_wing
ae769d388b36 ubuntu "bash" 2 hours ago Exited (0) 2 hours ago kind_murdock
5596841696f6 mydebian "bash" 2 hours ago Exited (0) 2 hours ago festive_booth
我真的不明白为什么它不能保持Apache服务器的运行<代码>AH00558是一个警告,它从不阻止Apache启动。
我的笔记本电脑上有一个正在运行的Apache2.4实例正在监听80,因此我停止了与之相关的Windows服务
我还尝试更改Docker中的端口绑定,或者不将任何端口绑定(-p
)传递给Docker以查看发生了什么
如您所见,我不是故意运行容器-d
(与链接教程不同)来查看其输出
是什么阻止了基于Apache的容器启动?我对运行真正的Apache/php并不感兴趣,但我只想了解Docker以及如何根据您的需要定制映像。TL;博士:我正在学习,现在没有真正的业务需要
使现代化
我试着用雷神之锤的方法。如果我坚持执行docker start apache2,我可以让Apache服务器只运行几秒钟,正好是浏览浏览器根目录的时候。服务器最终结束
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker exec apache2 bash
D:\IdeaDevOps\dockers\apache2>docker exec apache2 bash
D:\IdeaDevOps\dockers\apache2>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 20 minutes ago Up 17 seconds 0.0.0.0:80->80/tcp apache2
D:\IdeaDevOps\dockers\apache2>docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 20 minutes ago Exited (1) 1 second ago apache2
8d1c4522aa30 mydebian "bash" 2 hours ago Exited (0) 2 hours ago elated_wing
ae769d388b36 ubuntu "bash" 2 hours ago Exited (0) 2 hours ago kind_murdock
5596841696f6 mydebian "bash" 2 hours ago Exited (0) 2 hours ago festive_booth
D:\IdeaDevOps\dockers\apache2>docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 21 minutes ago Exited (1) 23 seconds ago apache2
8d1c4522aa30 mydebian "bash" 2 hours ago Exited (0) 2 hours ago elated_wing
ae769d388b36 ubuntu "bash" 2 hours ago Exited (0) 2 hours ago kind_murdock
5596841696f6 mydebian "bash" 2 hours ago Exited (0) 2 hours ago festive_booth
docker容器需要暂停进程以保持状态 当您运行“ServiceApache2Start”时,服务启动,即容器停止
因此,您应该使用一个持续运行的命令,例如:
apachectl-D FOREGROUND
是否意味着教程已中断?本教程将指导您使用服务启动
,但这是VMs中会用到的。容器不是虚拟机。更多信息请点击此处:。检查@usr local-ΕψΕ∧ΝΝ提供的答案可能是的。投票以重复形式结束,然后提供答案有什么意义?@leopal如你所说:这是一次投票。也许它不是重复的,在这种情况下,我有一个答案…我的回答是为了帮助提问者快速确定解决方案,然后我会投票支持以dup结束,但你们是为我做的。无论如何,我相信它确实是一个复制品。
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker start apache2
apache2
D:\IdeaDevOps\dockers\apache2>docker exec apache2 bash
D:\IdeaDevOps\dockers\apache2>docker exec apache2 bash
D:\IdeaDevOps\dockers\apache2>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 20 minutes ago Up 17 seconds 0.0.0.0:80->80/tcp apache2
D:\IdeaDevOps\dockers\apache2>docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 20 minutes ago Exited (1) 1 second ago apache2
8d1c4522aa30 mydebian "bash" 2 hours ago Exited (0) 2 hours ago elated_wing
ae769d388b36 ubuntu "bash" 2 hours ago Exited (0) 2 hours ago kind_murdock
5596841696f6 mydebian "bash" 2 hours ago Exited (0) 2 hours ago festive_booth
D:\IdeaDevOps\dockers\apache2>docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c669aacbed7a debian_apache2 "/bin/sh -c 'service…" 21 minutes ago Exited (1) 23 seconds ago apache2
8d1c4522aa30 mydebian "bash" 2 hours ago Exited (0) 2 hours ago elated_wing
ae769d388b36 ubuntu "bash" 2 hours ago Exited (0) 2 hours ago kind_murdock
5596841696f6 mydebian "bash" 2 hours ago Exited (0) 2 hours ago festive_booth