我在构建命令成功的地方构建了Dockerfile
sudo docker build --network=host -t nid-robotic-server .
但是当我尝试运行文件时
docker run -it nid-robotic-server
它伸出。
rafa@ace:/home/automation$ docker run -it robotic-server
8:C 02 Dec 2018 11:39:05.871 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8:C 02 Dec 2018 11:39:05.871 # Redis version=5.0.2, bits=64, commit=00000000, modified=0, pid=8, just started
8:C 02 Dec 2018 11:39:05.871 # Configuration loaded
rafa@ace:/home/automation$
有人可以帮我吗?这将是很大的帮助。
答案 0 :(得分:0)
docker run -it --entrypoint="/bin/sh" nid-robotic-server
或
docker run -it --entrypoint="/bin/bash" nid-robotic-server
应该为您工作。
这取决于您如何在dockerfile中配置ENTRYPOINT
和CMD
。如果您将shell以外的东西定义为入口点,则将无法“简单地”以交互方式运行容器,您需要先用--entrypoint
覆盖入口点。
如果您打算以dameon的身份运行映像,则为入口点设置shell以外的其他东西是完全可以的,甚至是很好的做法(这是docker的常见情况)。
您在dockerfile中使用ENTRYPOINT
是错误的,有关更多信息,请参见https://docs.docker.com/engine/reference/builder/#entrypoint。
答案 1 :(得分:0)
当docker运行时,您没有任何要执行的任务。您使用错误的入口点。 --daemonized
之类的任务将在后台运行。
检查您的Dockerfile,启动Docker时不会执行任何任务。
至少将此部分添加到dockerfile的末尾:
CMD ["/bin/sh"]
然后通过运行此命令,将您放入docker的sh
shell中。
docker run -it --entrypoint="/bin/sh" nid-robotic-server