设为首页 收藏本站
查看: 878|回复: 0

[经验分享] 四个修改Docker默认存储位置的方法

[复制链接]

尚未签到

发表于 2018-5-27 12:22:49 | 显示全部楼层 |阅读模式
  方法一、软链接
  默认情况下Docker的存放位置为:/var/lib/docker
  可以通过下面命令查看具体位置:
  sudo docker info | grep "Docker Root Dir"
  解决这个问题,最直接的方法当然是挂载分区到这个目录,但是我的数据盘还有其他东西,这肯定不好管理,所以采用修改镜像和容器的存放路径的方式达到目的。
  这个方法里将通过软连接来实现。
  首先停掉Docker服务:
  systemctl restart docker或者service docker stop
  然后移动整个/var/lib/docker目录到目的路径:
  mv /var/lib/docker /root/data/dockerln -s /root/data/docker /var/lib/docker
  这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。
  

  方法二、修改镜像和容器的存放路径
  指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可。
  Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致,在 Ubuntu 中的位置是:/etc/default/docker,在 CentOS 中的位置是:/etc/sysconfig/docker。
  如果是 CentOS6 则添加下面这行:
  OPTIONS=--graph="/root/data/docker" --selinux-enabled -H fd://
  如果是 Ubuntu 则添加下面这行(因为 Ubuntu 默认没开启 selinux):
  OPTIONS=--graph="/root/data/docker" -H fd://# 或者DOCKER_OPTS="-g /root/data/docker"
  最后重新启动,Docker 的路径就改成 /root/data/docker 了。
  centos7下,也可以
  修改docker.service文件,使用-g参数指定存储位置
  vi /usr/lib/systemd/system/docker.service
  ExecStart=/usr/bin/dockerd --graph /new-path/docker
  // reload配置文件
  systemctl daemon-reload
  // 重启docker
  

  systemctl restart docker.service
  如果docker是1.12或以上的版本,可以修改(或新建)daemon.json文件。修改后会立即生效,不需重启docker服务。
  vim /etc/docker/daemon.json
  {"registry-mirrors": ["http://7e61f7f9.m.daocloud.io"],"graph": "/new-path/docker"}
  

  方法三、system下创建配置文件
  在/etc/systemd/system/docker.service.d 目录下创建一个Drop-In文件“docker.conf”,默认 docker.service.d 文件夹不存在。所以你必须先创建它。
  创建Drop-In 文件的原因,是我们希望Docker 服务,使用docker.conf文件中提到的特定参数,将默认服务所使用的位于/lib/systemd/system/docker.service文件中的参数进行覆盖。如果你想深入了解Drop-In,请阅读system.unit文档
  定义新的存储位置现在打开docker.conf增加如下内容:
  # sudo vi /etc/systemd/system/docker.service.d/docker.conf
  [Service]
  ExecStart=
  ExecStart=/usr/bin/dockerd --graph="/mnt/new_volume" --storage-driver=devicemapper
  保存并退出VI编辑器,/mnt/new_volume 是新的存储位置,而devicemapper是当前docker所使用的存储驱动。如果你的存储驱动有所不同,请输入之前第一步查看并记下的值。Docker官方文档中提供了更多有关各种存储驱动器的信息。现在,你可以重新加载服务守护程序,并启动Docker服务了。这将改变新的镜像和容器的存储位置。
  # sudo systemctl daemon-reload
  # sudo systemctl start docker
  为了确认一切顺利,运行 # docker info 命令检查Docker 的根目录.它将被更改为/mnt/new_volume
  

  方法四、使用docker-storage-set(docker1.12)命令进行配置
  配置文件位置:/usr/lib/docker-storage-setup/docker-storage-setup或者/etc/sysconfig/docker-storage-setup、/etc/sysconfig/docker-storage
  vim /etc/sysconfig/docker-storage
  # This file may be automatically generated by an installation program.
  # Please DO NOT edit this file directly. Instead edit
  # /etc/sysconfig/docker-storage-setup and/or refer to
  # "man docker-storage-setup".
  # By default, Docker uses a loopback-mounted sparse file in
  # /var/lib/docker.  The loopback makes it slower, and there are some
  # restrictive defaults, such as 100GB max storage.
  DOCKER_STORAGE_OPTIONS=--graph="要保存的路径"
  或者
  DEVS=/dev/vdb
  DATA_SIZE=800GB(更改docker默认存储大小)
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481780-1-1.html 上篇帖子: 基于Docker、Jenkins和Saltstack的持续部署方案 下篇帖子: Docker模拟多人协作进行Git操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表