我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
当前回答
在某些情况下,您的图像可以是基于阿尔卑斯山的。在这种情况下,它将抛出:
OCI运行时执行失败:执行失败:container_linux.go:348:启动容器进程导致“exec:\”bash\“:在中找不到可执行文件$PATH“:未知
因为/bin/bash不存在。相反,您应该使用:
docker exec -it 9f7d99aa6625 ash
or
docker exec -it 9f7d99aa6625 sh
其他回答
要连接到Windows容器中的cmd,请使用
docker exec -it d8c25fde2769 cmd
其中d8c25fde2769是容器id。
如果您像我一样在这里寻找Docker Compose特定的答案,它提供了一种简单的方法,无需查找生成的容器ID。
docker-compose-exec根据docker-coompose.yml文件获取服务的名称。
因此,要为您的“web”服务获取Bash shell,您可以执行以下操作:
$ docker-compose exec web bash
$ docker exec -it <Container-Id> /bin/bash
或者根据外壳
$ docker exec -it <Container-Id> /bin/sh
您可以通过docker ps命令获取容器Id
-i=交互式
-t=分配伪TTY
使用此命令:
docker exec -it containerid /bin/bash
如果Docker安装了Kitematic,则可以使用GUI。从Docker图标打开Kitematic,在Kitematic窗口中选择容器,然后单击exec图标。
您也可以在这个GUI中看到容器日志和大量容器信息(在设置选项卡中)。