在Dockerfile中,我输入了以下内容:
COPY docker-files/krb5.conf /etc
RUN /usr/sbin/krb5kdc -P /var/run/krb5kdc.pid;
期望当我使用"docker run -it"命令时,KDC 将启动。
但是,启动 docker VM 后,KDC 未运行。 我的期望正确吗?
谢谢
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 有什么区别?
首先,使用 CMD(在运行时生效)而不是 RUN(在构建时生效)
然后用-n
将 krb 放在前景中:
CMD /usr/sbin/krb5kdc -n -P /var/run/krb5kdc.pid
但是,如果它仍然不起作用,请发布该容器的docker logs