相关疑难解决方法(0)

Dockerfile中CMD和ENTRYPOINT有什么区别?

在Dockerfiles中有两个看起来与我类似的命令:CMDENTRYPOINT.但是我猜它们之间存在着一种(微妙的?)差异 - 否则对于同样的事情来说两个命令就没有任何意义.

文档说明了 CMD

CMD的主要目的是为执行容器提供默认值.

并为ENTRYPOINT:

ENTRYPOINT可帮助您配置可作为可执行文件运行的容器.

那么,这两个命令之间的区别是什么?

docker

1484
推荐指数
14
解决办法
44万
查看次数

使用 -it 选项时 Docker 容器退出

考虑以下 Dockerfile:

FROM ubuntu:16.04

RUN apt-get update && \
    apt-get install -y apache2 && \
    apt-get clean

ENTRYPOINT ["apache2ctl", "-D", "FOREGROUND"]
Run Code Online (Sandbox Code Playgroud)

当使用命令运行容器时,容器将启动并保持运行状态,从而允许按预期从主机docker run -p 8080:80 <image-id>访问默认的 Apache 网页。https://localhost:8080但是,使用此运行命令,我无法使用 退出容器Ctrl+C,也如预期的那样,因为容器不是使用该-it选项启动的。现在,如果-it将选项添加到运行命令中,则容器在启动后立即退出。这是为什么?有没有一种优雅的方法可以让 apache 在退出时在前台运行Ctrl+C

docker dockerfile

7
推荐指数
1
解决办法
8121
查看次数

标签 统计

docker ×2

dockerfile ×1