我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
当前回答
如果您在Windows上使用Docker,并希望获得容器的shell访问权限,请使用以下命令:
winpty docker exec -it <container_id> sh
很可能,您已经安装了GitBash。如果没有,请确保安装它。
其他回答
码头工人组成(码头工人4卢比)
docker-compose exec php bash
我在Linux笔记本电脑上使用Docker for Drupal。运行容器后,我使用“docker compose exec php bash”与容器连接,以便运行drush突击队。这对我来说很好。
我创建了一个终端功能,以便更方便地访问容器的终端。也许这对你们也有用:
结果是,不用键入:
docker exec -it [container_id] /bin/bash
你会写:
dbash [container_id]
将以下内容放入~/.bash_profile(或其他适合您的文件),然后打开一个新的终端窗口并享受快捷方式:
#usage: dbash [container_id]
dbash() {
docker exec -it "$1" /bin/bash
}
docker高管肯定会是一个解决方案。解决您提出的问题的一个简单方法是将Docker中的目录安装到本地系统的目录中。
以便您可以立即查看本地路径中的更改。
docker run -v /Users/<path>:/<container path>
如果Docker安装了Kitematic,则可以使用GUI。从Docker图标打开Kitematic,在Kitematic窗口中选择容器,然后单击exec图标。
您也可以在这个GUI中看到容器日志和大量容器信息(在设置选项卡中)。
有两个选项,我们可以使用这些方法shell和bash直接连接到docker终端,但通常不支持bash,而支持defalt sh要进入正在运行的容器,请键入以下内容:
docker exec-it container_name/container_ID sh
要猛击正在运行的容器,请键入以下命令:
docker exec-it container_name/container_ID bash
您只想使用bash终端,而不想在Dockerfile中安装bash终端(如RUNaptinstallbash-y)