2017-05-19 64 views
1

在Dockerfile,我把以下内容:启动KDC在Dockerfile

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

的期望是,KDC会当我使用“泊坞窗运行 - 它”命令启动。

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

感谢

回答

0

RUN是不一样的CMD

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

入口点

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

默认情况下,泊坞窗容器进行什么活动我t已经在CMD中并退出,所以这是“正常的”。

尝试通过CMD更换RUN,重建并重新启动

看到

What is the difference between CMD and ENTRYPOINT in a Dockerfile?

+0

我使用CMD更改了RUN,并重新启动了docker虚拟机。 krb5kdc在虚拟机中仍然不活动。顺便说一句,“码头运行”,我指定“-h = securecluster”。不知道这是否会在我观察到的中扮演一些角色。 – Ted

+0

该命令是否持续很长时间或立即返回提示? – user2915097

+0

尝试'CMD/usr/sbin/krb5kdc -P /var/run/krb5kdc.pid;睡眠无限' – user2915097

0

首先也creack答案,使用CMD(需要在运行时的效果),而不是RUN(中呈现建构效应时间)

然后把KRB前景与-n

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

但是,如果它仍然无法正常工作,请发布该容器的docker logs

+0

以下是docker日志的尾部:https://pastebin.com/bbLuR0P5 – Ted

+0

您说“然后把krb放在前台”。这是否意味着我需要两个CMD的krb5kdc?在之前的输出中,只有一个CMD。 – Ted

+0

看着/var/log/krb5kdc.log,没有任何迹象表明krb5kdc实际运行 - 日志文件是空的。 – Ted