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图像做同样的事情时,它可以工作。为什么不在这里工作?
答案 0 :(得分:2)
不同之处在于运行过程。使用Ubuntu,您将被附加到sh
。使用httpd
,您将被附加到apache主进程,该进程不是shell。
执行此操作而不是附加:
docker exec -it MyWebServer sh
这样,您将在运行apache进程的同一容器中启动一个shell。
答案 1 :(得分:1)
您是否阅读过文档? attach返回容器生成的所有消息。我打赌你想要做exec而不是。
要么是
docker exec -it container_name_or_id bash
或
docker-compose exec service_name bash
如果你使用docker-compose app。
您可以执行任何命令(除非容器没有固定的入口点),例如
docker exec container ls /