V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fuxkcsdn
V2EX  ›  Docker

docker volume 容器 创建后被删除了,有办法重新 create 吗?

  •  
  •   fuxkcsdn · 2017-09-27 16:29:52 +08:00 via iPhone · 5824 次点击
    这是一个创建于 2615 天前的主题,其中的信息可能已经有所发展或是发生改变。

    docker for windows

    使用

    docker create -v /root -v /workspace --name work my/work /bin/true
    

    创建了一个 volume 容器 其他容器运行时连接这个 volume 容器

    docker run -d --restart=always --volumes-from work nginx
    docker run -d --restart=always --volumes-from work php7
    

    这样即使主机重启,重启后的 nginx 和 php 数据依然存在

    今天运行了

    docker rm `docker ps -qa`
    

    结果把 volume 容器给删除了

    用同样的 docker create 命令创建的 volume 容器,容器里的内容是空的...

    现在还有办法将之前的 volume 容器重新创建回来吗?(之前连接到这个 volume 容器的 nginx 和 php 容器还在运行)

    第 1 条附言  ·  2017-09-27 20:54:44 +08:00

    已解决

    如果 docker rm 的时候没加 -v 参数的话,容器的数据不会马上被删除

    我还有容器挂载在这个 volume 容器上,通过 docker inspect CONTAINER ID 可以查看容器当前的挂载目录

    "Mounts": [
        {   
            "Type": "volume",
            "Name": "979811b39e1eac1314fa2f909a8d801396c3748f69a8c009cf53169b2b70c46b",
            "Source": "/var/lib/docker/volumes/979811b39e1eac1314fa2f909a8d801396c3748f69a8c009cf53169b2b70c46b/_data",
            "Destination": "/workspace",
            "Driver": "local",
            "Mode": "", 
            "RW": true,
            "Propagation": ""
        }   
    ],
    

    然后通过

    docker create -v /root -v /workspace --name work my/work /bin/true
    

    创建同名的 volume 容器,之后 运行 docker inspect work 查看当天的挂载目录

    如果是 Linux 上的话,直接进入到 /var/lib/docker/volumes/ 将旧数据拷贝到新的挂载目录下

    如果是 Mac 或者 Windows 的话,通过以下命令进入到 docker 虚拟机里

    docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh
    

    之后的操作就和 Linux 上一样

    最后,将使用 --volumes-from work 挂载的容器停掉(docker stop)并重新运行(docker run)

    参考:

    https://forums.docker.com/t/can-i-kvm-with-the-hyper-v-mobylinuxvm/17716/2

    http://blog.idetailaid.co.uk/how-to-recover-an-orphaned-docker-volume-for-a-data-container

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2380 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:03 · PVG 00:03 · LAX 08:03 · JFK 11:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.