考虑以下 Dockerfile:
FROM ubuntu:16.04
RUN apt-get update && \
apt-get install -y apache2 && \
apt-get clean
ENTRYPOINT ["apache2ctl", "-D", "FOREGROUND"]
当使用命令
docker run -p 8080:80 <image-id>
运行容器时,容器将启动并保持运行,允许按预期从主机在 https://localhost:8080
上访问默认的 Apache 网页。但是,使用此运行命令,我无法使用 Ctrl+C
退出容器,这也符合预期,因为容器未使用 -it
选项启动。现在,如果将 -it
选项添加到 run 命令中,则容器在启动后立即退出。这是为什么?是否有一种优雅的方式让 apache 在退出 Ctrl+C
时在前台运行?
最佳答案
您需要做的就是将 -d
选项传递给运行命令:
docker run -d -p 8080:80 my-container
关于使用 -it 选项时 Docker 容器退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48086606/