运行docker attach时什么都不会发生
docker pull httpd .. docker run -d --name MyWebServer httpd .. docker attach MyWebServer (nothing printed here - so I press enter + ls) ls (nothing printed here - so I press enter multiple times and still nothing..)
当我尝试用ubuntu映像做同样的事情时,它可以工作。 为什么它不在这里工作?
不同之处在于运行过程。 用Ubuntu,你正在被附加到sh
。 用httpd
你正在连接到apache主进程,这不是一个shell。
这样做而不是附加:
docker exec -it MyWebServer sh
这样,你就可以在运行apache进程的同一个容器里启动一个shell。
你读过文档吗? 附件返回容器产生的任何消息。 我敢打赌,你想要做exec。
也是
docker exec -it container_name_or_id bash
要么
docker-compose exec service_name bash
如果您使用docker-compose应用程序。
例如,您可以执行任何命令(除非容器没有固定的入口点)
docker exec container ls /