如何将docker卷复制到本地?

Ker*_* Hu 13 docker boot2docker docker-volume

我创建了一个 docker 卷“hello”,它包含一些数据。

怎么复制到本地?

第一的 :

kerydeMacBook-Pro:~ hu$ docker volume create --name hello
hello
Run Code Online (Sandbox Code Playgroud)

检查:

kerydeMacBook-Pro:~ hu$ docker volume ls
DRIVER              VOLUME NAME
local               hello
Run Code Online (Sandbox Code Playgroud)

卷“你好”检查

kerydeMacBook-Pro:~ hu$  docker volume inspect hello
[
    {
        "Name": "hello",
        "Driver": "local",
        "Mountpoint": "/mnt/sda1/var/lib/docker/volumes/hello/_data"
    }
]
Run Code Online (Sandbox Code Playgroud)

如何将卷“hello”复制到本地?

我尝试:

kerydeMacBook-Pro:~ hu$  docker cp hello:/mnt/sda1/var/lib/docker/volumes/hello/_data /Users/hu/Desktop/12
Error response from daemon: no such id: hello
Run Code Online (Sandbox Code Playgroud)

它不像预期的那样工作!

谁能帮我 ?

Mat*_*att 25

要将数据从复制到主机,请使用安装了卷的临时容器。

CID=$(docker run -d -v hello:/hello busybox true)
docker cp $CID:/hello ./
Run Code Online (Sandbox Code Playgroud)

将目录从主机复制到

cd local_dir
docker cp . $CID:/hello/
Run Code Online (Sandbox Code Playgroud)

然后清理临时容器。

docker rm $CID
Run Code Online (Sandbox Code Playgroud)


小智 12

您无需运行任何其他容器即可使用现有容器执行此任务。

将文件从容器复制到本地路径

docker cp CONTAINER:/var/logs/ /tmp/app_logs
Run Code Online (Sandbox Code Playgroud)

将本地文件复制到容器中

docker cp ./some_file CONTAINER:/work
Run Code Online (Sandbox Code Playgroud)