在python脚本执行后立即退出docker容器:
docker run -t -i -v /root/test.py:/test.py zookeeper python test.py (test.py启动zookeeper服务)
命令成功但立即退出启动容器。我无法使用“docker start container id”启动容器。
手动运行“python test.py”在容器内成功,但在“docker run ....”中没有成功。
答案 0 :(得分:6)
刚刚启动服务器是不够的。当CMD退出时,容器也会退出。因此,如果您启动一个守护进程的服务,您需要保持您的进程存活。这可以通过例如拖尾服务日志文件来实现。 supervisord是另一种运行进程并使CMD保持活跃的方式。
例如,您可以
CMD /test.py && tail -F /var/log/zookeeper.log
从命令行运行你可以做类似的事情
docker run -t -i -v /root/test.py:/test.py zookeeper bash -c "python test.py && tail -F /var/log/zookeeper.log"