zoukankan      html  css  js  c++  java
  • [Notes] Ubuntu下修改docker 镜像存储位置并进行数据迁移

    默认情况下docker的镜像和容器都是保存在

    /var/lib/docker下面

    可以通过

    du -h --max-depth=1 /var/lib/docker
    

      

    查看文件夹大小的方式来确认文件夹内是不是有镜像(如有那么一般会很大)。

     方法1:

    然后在将这个文件夹拷贝到新的地方(比如说更大的硬盘上,假设是/data分区,它挂载在一个单独硬盘上):

    sudo cp -r /var/lib/docker /data/docker
    

      

    然后修改docker中默认镜像和容器的保存位置。

    sudo vim /etc/docker/daemon.json
    

      

    将里面的data-root改为新的docker容器存储位置,

    "data-root": "/data/docker",
    

      

    然后重启docker服务,就可以更新docker默认的镜像容器保存位置,特别注意,如果新的保存位置里拷贝了原来容器保存位置里的所有内容,那么镜像数据等也就迁移过来了。

    sudo systemctl stop docker
    sudo systemctl start docker
    sudo systemctl status docker
    

      

    个人认为这种迁移方式主要和docker的实现逻辑有关,毕竟docker主要是做了文件系统的隔离,所以每个镜像和容器实际上都是依赖块隔离的硬盘空间(在里面部署一个隔离的文件系统),所以可以通过直接拷贝的方式进行迁移,而不需要担心有很么依赖关系无法通过拷贝带过去。

    方法2:

    将/var/lib/docker目录迁往他处

    sudo mv /var/lib/docker /data/docker

    通过软链接的方式再把它处的文件夹链接会/var/lib/docker,重启docker

    ln -s /data/docker /var/lib/docker

    sudo systemctl stop docker
    sudo systemctl start docker
    sudo systemctl status docker

      

  • 相关阅读:
    最近遇到了这个坑,特意记录下
    《java8实战阅读笔记》
    Namespace的简讲
    发展历程C++及C++与C语言的关系
    进程间通信的概述2
    本来调试无误的程序在真机运行时报标题错误解决方案
    navagationController 的子控制器如何取消右滑返回
    iOS常见的设计模式
    代码:Masonry 第三方框架
    Autolayout的在storyboard警告和错误
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/12102779.html
Copyright © 2011-2022 走看看