我开始使用 Docker。我正在使用 WordPress 基础镜像和 docker-compose。
我正在尝试 ssh 进入其中一个容器以检查在初始构建期间创建的文件/目录。我试图运行 docker-compose run containername ls -la
,但这并没有做任何事情。即使是这样,我也宁愿有一个可以遍历目录结构的控制台,而不是运行单个命令。使用 Docker 执行此操作的正确方法是什么?
原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议
我开始使用 Docker。我正在使用 WordPress 基础镜像和 docker-compose。
我正在尝试 ssh 进入其中一个容器以检查在初始构建期间创建的文件/目录。我试图运行 docker-compose run containername ls -la
,但这并没有做任何事情。即使是这样,我也宁愿有一个可以遍历目录结构的控制台,而不是运行单个命令。使用 Docker 执行此操作的正确方法是什么?
原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议
要 bash 进入正在运行的容器,请输入:
docker exec -t -i container_name /bin/bash
或者
docker exec -ti container_name /bin/bash
或者
docker exec -ti container_name sh
原文由 Agustí Sánchez 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
2 回答788 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
1 回答947 阅读
docker attach
将让您连接到您的 Docker 容器,但这与ssh
并不是一回事。例如,如果您的容器正在运行 Web 服务器,docker attach
可能会将您连接到 Web 服务器进程的 _标准输出_。它不一定会给你一个外壳。docker exec
命令可能是您正在寻找的;这将允许您在现有容器内运行任意命令。例如:当然,您运行的任何命令都必须存在于容器文件系统中。
上述命令中
<mycontainer>
是目标容器的名称或ID。不管你是否使用docker compose
;只需运行docker ps
并使用 ID(显示在第一列中的十六进制字符串)或名称(显示在最后一列中)。例如,给定:我可以跑:
我可以通过运行来完成同样的事情:
同样,我可以在容器中启动一个 shell;