我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。

我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?


当前回答

使用以下命令启动Docker容器中的会话:

sudo docker exec -i -t (container ID) bash

其他回答

有两个选项,我们可以使用这些方法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)

码头工人组成(码头工人4卢比)

docker-compose exec php bash

我在Linux笔记本电脑上使用Docker for Drupal。运行容器后,我使用“docker compose exec php bash”与容器连接,以便运行drush突击队。这对我来说很好。

如果Docker安装了Kitematic,则可以使用GUI。从Docker图标打开Kitematic,在Kitematic窗口中选择容器,然后单击exec图标。

您也可以在这个GUI中看到容器日志和大量容器信息(在设置选项卡中)。

去侧溶液

安装goinside命令行工具,包括:

sudo npm install -g goinside

并进入码头集装箱,码头尺寸适当,带有:

goinside docker_container_name

旧答案

我们将此代码段放在~/.profile中:

goinside(){
    docker exec -it $1 bash -c "stty cols $COLUMNS rows $LINES && bash";
}
export -f goinside

这不仅使每个人都能够进入一个正在运行的容器:

goinside containername

它还解决了固定Docker集装箱码头尺寸的长期问题。如果你面对它,这是非常令人讨厌的。

此外,如果您按照链接进行操作,您的docker容器名称也会有命令完成。

$ docker exec -it <Container-Id> /bin/bash

或者根据外壳

$ docker exec -it <Container-Id> /bin/sh

您可以通过docker ps命令获取容器Id

-i=交互式

-t=分配伪TTY