在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