在Dockerfile中启动kdc

在Dockerfile中,我join了以下内容:

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

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

但是,启动docker虚拟机之后,KDC没有运行。 我的期望是否正确?

谢谢

RUN与CMD不一样

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

要么

入口点

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

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

尝试用CMDreplaceRUN,重build并重新启动

请参阅creack答案

在Dockerfile中,CMD和ENTRYPOINT有什么区别?

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

然后用-n将krb放在前台:

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

但是,如果它仍然不工作,发布该容器的docker logs