我正在尝试将一些文件从我的 docker 容器复制到我的本地主机,我阅读了文档,这样做的方法是
docker cp 'container':path/to/file dest/path
但这需要我知道容器内我想要访问的路径和目录,我如何查看容器的目录?我尝试了 docker diff 和 docker inspect 但这些没有显示容器的文件目录
我正在尝试将一些文件从我的 docker 容器复制到我的本地主机,我阅读了文档,这样做的方法是
docker cp 'container':path/to/file dest/path
但这需要我知道容器内我想要访问的路径和目录,我如何查看容器的目录?我尝试了 docker diff 和 docker inspect 但这些没有显示容器的文件目录
您首先需要知道正在运行的实例的名称?
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36029... image/image ... 1 sec.. Up.. ... some-container
现在,进入容器并寻找你需要的东西。假设容器名称是some-image。
$ docker exec -it some-container /bin/bash
root@1f3420c939:/var/www/html#
如果您已经知道该文件夹:
docker exec -it some-container ls /path/to/file
编辑:
正如@Konrad Botor 所指出的,也可以使用容器 id 而不是容器名称,更重要的是,并非所有图像都已bash
安装(alpine 是最流行的不使用它的图像)。
这是一个高山的例子:
docker run -d \
--rm \
--name my_alpine_container \
alpine \
sleep 3600
CONTAINER_ID=$( docker ps -q my_alpine_container )
# to "enter" the container:
docker exec -it $CONTAINER_ID sh