gpt4 book ai didi

apache - 我的Docker镜像如何将apache作为服务运行

转载 作者:行者123 更新时间:2023-12-02 18:55:35 25 4
gpt4 key购买 nike

我已经建立了一个docker镜像来运行apache。我是从ubuntu基本镜像构建的,以便可以设置所需的apache和php版本。我在 docker 文件的末尾添加了CMD以在前台运行apache。

FROM ubuntu:16.04

RUN apt-get update && \
apt-get install -y --allow-unauthenticated software-properties-common && \
add-apt-repository ppa:ondrej/apache2 && \
apt-get update && \

....

WORKDIR /

CMD ["/usr/sbin/apachectl","-DFOREGROUND"]

我正在尝试使用docker-compose(以及其他一些服务)运行容器。但是,容器会立即退出。如果使用 docker命令运行镜像,也会发生同样的情况。
docker run my_image
docker ps

有趣的是,如果我使用 docker run -it my_image运行它,那么容器将启动,并且我进入了bash shell。 (我相信我正在使用的ubuntu基本镜像上的默认CMD是bash)。

我想念什么吗?如何编写Dockerfile,以便apache在镜像上作为服务运行?

最佳答案

如果在运行图像时遇到bash shell,听起来CMD ["/usr/sbin/apachectl","-DFOREGROUND"]没有生效。

仔细检查您的docker build命令是否成功,并且您正在运行构建的镜像,而不是其他镜像。

这是一个示例Dockerfile,相关的docker build输出(特别是CMD步骤),以及一个正在运行的示例:

$ cat Dockerfile
FROM ubuntu:16.04
RUN apt-get -y update && apt-get -y install apache2 && rm -rf /var/lib/apt/lists/*

CMD apachectl -DFOREGROUND
$ docker build -t myapache .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:16.04
---> 2fa927b5cdd3
Step 2 : RUN apt-get -y update && apt-get -y install apache2 && rm -rf /var/lib/apt/lists/*
---> Using cache
---> f766fd84056d
Step 3 : CMD apachectl -DFOREGROUND
---> Running in 2814d231e50e
---> 774b579e43ce
Removing intermediate container 2814d231e50e
Successfully built 774b579e43ce
$ r run -d --name myapache -p 80:80 myapache
4718994f1669306c64ac6846f4e0f87aa15a63a888ca7d5c8ba711f39379db57
$ http://localhost:80/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
Modified from the Debian original for Ubuntu
Last updated: 2014-03-19
See: https://launchpad.net/bugs/1288690
...

关于apache - 我的Docker镜像如何将apache作为服务运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40026789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com