1

在 Dockerfile 中,我输入了以下内容:

COPY docker-files/krb5.conf /etc
RUN /usr/sbin/krb5kdc -P /var/run/krb5kdc.pid;

期望是当我使用“docker run -it”命令时 KDC 会启动。

但是,启动 docker VM 后,KDC 没有运行。我的预期正确吗?

谢谢

4

2 回答 2

0

首先,使用 CMD(在运行时生效)而不是 RUN(在构建时生效)

然后将 krb 放在前台-n

CMD /usr/sbin/krb5kdc -n -P /var/run/krb5kdc.pid

但如果它仍然不起作用,请发布该docker logs容器的

于 2017-05-20T02:41:45.580 回答
0

RUN 和 CMD 不一样

https://docs.docker.com/engine/reference/builder/#cmd

或者

入口点

https://docs.docker.com/engine/reference/builder/#entrypoint

默认情况下,docker 容器执行它在 CMD 中的内容并退出,所以这是“正常的”。

尝试用 CMD 替换 RUN,重建并重新启动

另请参阅

Dockerfile 中的 CMD 和 ENTRYPOINT 有什么区别?

于 2017-05-19T14:48:07.833 回答