【问题标题】:Moving files into a Docker Data Volume将文件移动到 Docker 数据卷中
【发布时间】:2017-03-22 18:27:49
【问题描述】:

首先我创建一个卷:

docker volume create --name some-volume

然后我创建一个文件touch ~/somefile.txt

现在我想将~/somefile.txt 移动到卷some-volume 的根目录中。我该怎么做?

【问题讨论】:

    标签: docker docker-volume


    【解决方案1】:

    您可以使用容器来做到这一点:

    docker run --rm -v `pwd`:/source -v some-volume:/target \
      busybox cp -av /source/somefile.txt /target/somefile.txt
    

    我还将使用 tar 和 stdin 通过 docker 客户端/服务器连接将文件通过管道传输到远程卷:

    tar -cv -C source-dir . | \
      docker run --rm -i -v some-volume:/target busybox tar -xC /target
    

    导出类似:

    docker run --rm -v some-volume:/source busybox tar -cC /source . | \
      tar -xC target-dir
    

    【讨论】:

    • 感谢您的出色回答 - 如果我有一个 backup.tar.gz 存档,我可以使用 tar 技巧将文件直接解压缩到卷中,而无需取消存档备份吗?
    • 当然可以,如果是同一个主机,你可以这样做docker run --rm -v $(pwd):/source -v some-volume:/target busybox tar -xf /source/backup.tar.gz -C /target
    • 谢谢 - 你真棒!
    • 只使用 mv somefile /var/lib/docker/volumes/some-volume/_data/ 是不是不行?
    • @LeifNeland 直接修改后端假设:你是root,docker没有改变任何东西,你的命名卷只配置了默认选项。如果这些假设中的任何一个发生变化,直接修改后端将会中断,而使用实用程序容器应该继续工作,因为它访问卷的方式与其他容器相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2020-08-13
    • 2020-04-08
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    相关资源
    最近更新 更多