修改Docker镜像默认存储位置的⽅法(解决⽅法)
由于系统初始分区的原因,导致操作系统中对应 / 分区不会太⼤,通过 /var ⽬录不会单独分区。如果上⾯运⾏ Docker 服务,经过长时间的使⽤,会使原本就⽐较⼤的分区越来越不够⽤。如何更好地的处理这个问题呢?
1. 使⽤软链接
我们知道在操作系统当中,默认情况下 Docker 容器的存放位置在 /var/lib/docker ⽬录下⾯,可以通过下⾯命令查看具体位置。
# 默认存放位置
$ sudo docker info | grep "Docker Root Dir"
解决默认存储容量不⾜的情况,最直接且最有效的⽅法就是挂载新的分区到该⽬录。但是在原有系统空间不变的情况下,所以采⽤软链接的⽅式,修改镜像和容器的存放路径达到同样的⽬的。
docker重启容器命令# 停掉Docker服务
$ systemctl restart docker
# 停掉Docker服务
$ service docker stop
然后移动整个 /var/lib/docker ⽬录到空间不较⼤的⽬的路径。这时候启动 Docker 时发现存储⽬录依旧是 /var/lib/docker ⽬录,但是实际上是存储在数据盘 /data/docker 上了。
# 移动原有的内容
$ mv /var/lib/docker /data/docker
# 进⾏链接
$ ln -sf /data/docker /var/lib/docker
2. 指定容器启动参数
在配置⽂件中指定容器启动的参数 --graph=/var/lib/docker 来指定镜像和容器存放路径。Docker 的配置⽂件可以设置⼤部分的后台进程参数,在各个操作系统中的存放位置不⼀致。在 Ubuntu 中的位置是 /etc/default/docker ⽂件,在 CentOS 中的位置是 /etc/sysconfig/docker ⽂件。
# CentOS6
# 因为Ubuntu默认开启了selinux机制
OPTIONS=--graph="/data/docker" --selinux-enabled -H fd://
# CentOS7
# 修改docker.service⽂件,使⽤-g参数指定存储位置
$ vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /new-path/docker
# Ubuntu
# 因为Ubuntu默认没开启selinux机制
OPTIONS=--graph="/data/docker" -H fd://
重新启动之后,Docker 的路径就改成 /data/docker 了。
# 重新reload配置⽂件
$ sudo systemctl daemon-reload
# 重启docker服务
$ sudo systemctl restart docker.service
如果 Docker 的版本是 1.12 或以上的,可以修改或新建 daemon.json ⽂件。修改后会⽴即⽣效,不需重启 Docker 服务。
# 修改配置⽂件
$ vim /etc/docker/daemon.json
{
"registry-mirrors":
["daocloud.io"],
"graph": "/new-path/docker"
}
3. System 下创建配置⽂件
在 /etc/systemd/system/docker.service.d ⽬录下创建⼀个 Drop-In ⽂件 f,默认 docker.service.d ⽂件夹不存在,必须先创建它。创建 Drop-In ⽂件的原因,是我们希望 Docker服务使⽤ f ⽂件中提到的特定参数,将默认服务所使⽤的位于 /lib/systemd/system/docker.service ⽂件中的参数进⾏覆盖。
# 定义新的存储位置
$ sudo vi /etc/systemd/system/docker.service.f
[Service]
ExecStart=/usr/bin/dockerd --graph="/data/docker" --storage-driver=devicemapper
保存并退出 vim 编辑器 /data/docker 就是新的存储位置,⽽ devicemapper 是当前 Docker 所使⽤的存储驱动。如果你的存储驱动有所不同,请输⼊之前第⼀步查看并记下的值。现在,你可以重新加载服务守护程序,并启动 Docker 服务了,这将改变新的镜像和容器的存储位置。为了确认⼀切顺利,运⾏ docker info 命令检查 Docker 的根⽬录。
# 重新reload配置⽂件
$ sudo systemctl daemon-reload
# 重启docker服务
$ sudo systemctl start docker
到此这篇关于修改Docker镜像默认存储位置的⽅法的⽂章就介绍到这了,更多相关Docker镜像默认存储位置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论