我开始和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 run --rm -it --entrypoint /bin/ash image_name
or
$ docker run --rm -it --entrypoint /bin/sh image_name
or
$ docker run --rm -it --entrypoint /bin/bash image_name
创建一个新容器并将shell放入其中。由于指定了--rm,因此当退出shell时,容器将被删除。
如果您正在使用Docker Compose,那么这将使您进入Docker容器。
docker-compose run container_name /bin/bash
在容器中,它会将您带到Dockerfile中定义的WORKDIR。您可以通过以下方式更改工作目录
WORKDIR directory_path # E.g /usr/src -> container's path
有两个选项,我们可以使用这些方法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图像:
sudo docker images
在我的系统上,它显示了以下输出:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
bash latest 922b9cc3ea5e 9 hours ago
14.03 MB
ubuntu latest 7feff7652c69 5 weeks ago 81.15 MB
我的电脑上有两个Docker映像。假设我想运行第一个。
sudo docker run -i -t ubuntu:latest /bin/bash
这将为您提供容器的终端控制。现在,您可以在容器内执行所有类型的shell操作。像这样ls将输出文件系统根目录中的所有文件夹。
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var