在Dockerfile中,我输入以下内容:
COPY docker-files/krb5.conf /etc
RUN /usr/sbin/krb5kdc -P /var/run/krb5kdc.pid;
期望在我使用“docker run -it”命令时启动KDC。
但是,启动docker VM后KDC没有运行。 我的期望是否正确?
由于
答案 0 :(得分:0)
RUN与CMD不同
https://docs.docker.com/engine/reference/builder/#cmd
或
入口点
https://docs.docker.com/engine/reference/builder/#entrypoint
默认情况下,泊坞窗容器执行它在CMD中的内容并退出,因此这是"正常"。
尝试通过CMD替换RUN,重建并重新启动
另见
中的creack answerWhat is the difference between CMD and ENTRYPOINT in a Dockerfile?
答案 1 :(得分:0)
首先,使用CMD(在运行时生效)而不是RUN(在构建时生效)
然后将krb放在前景-n
:
CMD /usr/sbin/krb5kdc -n -P /var/run/krb5kdc.pid
但如果它仍无效,请发布该容器的docker logs