我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
我开始和Docker合作了。我正在使用WordPress的基本图像和docker合成。
我正在尝试ssh到其中一个容器中,以检查在初始构建期间创建的文件/目录。我试着运行docker compose运行containername ls-la,但没有任何效果。即使是这样,我也希望有一个控制台,在那里我可以遍历目录结构,而不是运行一个命令。使用Docker的正确方法是什么?
当前回答
如果Docker安装了Kitematic,则可以使用GUI。从Docker图标打开Kitematic,在Kitematic窗口中选择容器,然后单击exec图标。
您也可以在这个GUI中看到容器日志和大量容器信息(在设置选项卡中)。
其他回答
如果您正在使用Docker Compose,那么这将使您进入Docker容器。
docker-compose run container_name /bin/bash
在容器中,它会将您带到Dockerfile中定义的WORKDIR。您可以通过以下方式更改工作目录
WORKDIR directory_path # E.g /usr/src -> container's path
要执行到名为test的正在运行的容器中,下面是以下命令
如果容器具有bash shell
docker exec -it test /bin/bash
如果容器有伯恩外壳,大多数情况下都有
docker run -it test /bin/sh
这对我来说效果最好,因为如果使用它,我真的不必在docker构建中添加入口点。。
sudo docker运行-it--entrypoint/bin/bash<container_name>
我创建了一个终端功能,以便更方便地访问容器的终端。也许这对你们也有用:
结果是,不用键入:
docker exec -it [container_id] /bin/bash
你会写:
dbash [container_id]
将以下内容放入~/.bash_profile(或其他适合您的文件),然后打开一个新的终端窗口并享受快捷方式:
#usage: dbash [container_id]
dbash() {
docker exec -it "$1" /bin/bash
}
使用以下命令启动Docker容器中的会话:
sudo docker exec -i -t (container ID) bash