运行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 /