【簡記】修改Docker數據目錄位置,包含鏡像位置


為啥要改?

Docker安裝后默認下載的位置在/var/lib/docker ,如果/var分區沒有獨立分出來,Linux下默認是與/根分區在一起。一般我們裝Linux系統的時候,除了做郵件服務器外,都不會把/var分區獨立分出來,而且/分區一般不會太大,比如我現在用的這台根分區50G的,在拉鏡像的時候提示硬盤空間不足的問題,而其它分區還有很大空間。基於此情此景,我們都要把這個目錄改一下

查看當前Docker目錄位置

#展示當前docker的配置信息
docker info
-------------------------------------------------------------------
#在信息找到Docker Root Dir,對應的就是了,默認為:
Docker Root Dir: /var/lib/docker

幾種改法

注意以下幾種方式是互斥的,我折騰了一會,才發現,如你已經注意到,那此坑已平。

1、最簡單也是最暴力的方式——修改 /etc/systemd/system/multi-user.target.wants/docker.service

sudo vim /etc/systemd/system/multi-user.target.wants/docker.service
-------------------------------------------------------------------
#找到ExecStart部分,在此行末尾添加--graph=你的目錄,我的如下
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 
--graph=/home/hellxz/docker-home

-------------------------------------------------------------------
#保存退出,接着讓systemd重新讀取下這些service等的配置
sudo systemctl daemon-reload
#重啟docker服務
sudo systemctl restart docker

--graph=/path/to/path可以替換成-g /path/to/path 效果等同

2、官方文檔中的方式,修改 /etc/docker/daemon.json

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "data-root": "/home/hellxz/docker-home"
}

保存退出,重啟docker服務

sudo systemctl restart docker

主要是用data-root來修改docker的工作目錄

另外要提到的一點是,我嘗試了drop-in文件方式,沒有作用。

驗證

驗證一:

查看 docker info

驗證二:

查看之前/的容量

拉個鏡像,如mysql:5.7

再查看/容量

相比上邊的,鏡像位置已經修改完畢。
enjoy.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM