例如,我正在执行命令docker exec
:
docker exec reverse ls
第一次,它有效。然后,它显示结果,但是无限期地等待。我不明白为什么。
容器图像的entrypoint
为:
ENTRYPOINT service ssh restart && service nginx && /bin/bash
答案 0 :(得分:0)
嗯...这可能是因为您的ENTRYPOINT
有点反样式。
通常,一个Docker容器将只处理调用PID=1
的一件事情,但是您要给它做三件事,尤其是service nginx
。这可能会导致容器意外运行。
您的命令实际上是:
service ssh restart && service nginx && /bin/bash ls
看,它是有线的。但是,有一些技巧可以检查您是否真的在运行该容器。
a)首先在Dockerifle上删除ENTRYPOINT
。
b)仅使用/bin/bash
CMD运行容器
c)docker exec -it [CONTAINER_ID] /bin/bash
进入容器并运行命令以验证是否有效。
希望它对您有帮助。