我有一个在前台运行Apache服务的容器。我希望能够从另一个shell访问该容器,以便在其中“戳”并检查文件。目前,如果附加到容器,就只能看到Apache守护进程,不能运行任何命令。

是否可以将另一个tty附加到正在运行的容器?可能,我可以利用Docker实际上只是围绕LXC容器的事实?我尝试了sudo lxc-console -n [container-id] -t[1-4],但似乎只有一个tty可用,这是一个运行apache守护进程。也许有一种方法可以在构建过程中启用多个lxc控制台?

如果可能的话,我宁愿不使用openssh服务来配置和构建容器。


当前回答

docker exec -t -i container_name /bin/bash

会把你带到集装箱控制台。

其他回答

docker exec -t -i container_name /bin/bash

会把你带到集装箱控制台。

在容器中运行tmux/GNU Screen怎么样? 似乎更顺利的方式来访问尽可能多的vty,因为你想用一个简单的:

$ docker attach {container id}

我在运行的microsoft/iis运行守护进程上启动了powershell 使用

docker exec -it <nameOfContainer> powershell
docker exec -ti 'CONTAINER_NAME' sh

or

docker exec -ti 'CONTAINER_ID' sh

您应该使用Jérôme Petazzoni的名为“nsenter”的工具在不使用SSH的情况下进入容器。参见:https://github.com/jpetazzo/nsenter

docker run -v /usr/local/bin:/target jpetazzo/nsenter

然后使用命令docker-enter <container-id>进入容器。