Docker通过运行命令加载,但无法访问控制台

时间:2018-12-02 11:49:44

标签: docker docker-compose docker-swarm docker-machine

我在构建命令成功的地方构建了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$

有人可以帮我吗?这将是很大的帮助。

2 个答案:

答案 0 :(得分:0)

docker run -it --entrypoint="/bin/sh" nid-robotic-server

docker run -it --entrypoint="/bin/bash" nid-robotic-server

应该为您工作。

这取决于您如何在dockerfile中配置ENTRYPOINTCMD。如果您将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