本文被幫助文檔:
CentOS7修改Docker容器和鏡像默認(rèn)存儲(chǔ)位置
通常,當(dāng)你開始使用docker時(shí),我們并不太關(guān)心Docker 用于存儲(chǔ)鏡像和容器的默認(rèn)目錄。當(dāng)使用Docker進(jìn)行更多實(shí)驗(yàn)時(shí),Docker開始占用大量的空間時(shí),你不得不按下緊急按鈕。所以現(xiàn)在是時(shí)候把故障排除放在如何改變docker的默認(rèn)存儲(chǔ)位置了
在試圖改變Docker的默認(rèn)存儲(chǔ)位置時(shí),我們必須知道一些重要的信息。
docker 當(dāng)前使用的默認(rèn)存儲(chǔ)位置
docker 當(dāng)前使用的存儲(chǔ)驅(qū)動(dòng)程序
鏡像和容器要存放的新存儲(chǔ)空間
Docker 默認(rèn)的位置在/var/lib/docker,當(dāng)前所有的鏡像、容器都存儲(chǔ)在這兒。如果你有任何在運(yùn)行的容器,停止這些容器,并確保沒(méi)有容器在運(yùn)行,然后運(yùn)行以下命令,確定當(dāng)前Docker使用的存儲(chǔ)驅(qū)動(dòng)。
1、查看docker當(dāng)前信息
注:此處需要注意docker的兩個(gè)信息:
- Storage Driver: overlay2 當(dāng)前Docker使用的存儲(chǔ)驅(qū)動(dòng)
- Docker Root Dir: /var/lib/docker 當(dāng)前docker使用的數(shù)據(jù)目錄
docker info
[root@localhost ~]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 976.5MiB
Name: localhost.localdomain
ID: 3EGY:424H:ER2C:CBQ7:KUD5:SFRJ:TVDK:XV4Y:AFYJ:SOOL:7OM6:65K5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
2、停止docker服務(wù)
systemctl stop docker
3、修改docker服務(wù)啟動(dòng)文件
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/mnt/docker
注意:
原配置保持不變,添加--graph=/mnt/docker,/mnt/docker是新的存儲(chǔ)位置
以下兩個(gè)文件均可修改docker配置:
/etc/systemd/system/multi-user.target.wants/docker.service
/usr/lib/systemd/system/docker.service
4、將原先目錄下所有的文件和目錄拷貝到新目錄下
[root@localhost mnt]# cp -rf /var/lib/docker/* /mnt/docker/
[root@localhost docker]# pwd
/mnt/docker
[root@localhost docker]# ls
builder buildkit containers image network overlay2 plugins runtimes swarm tmp trust volumes
5、重新加載配置并啟動(dòng)
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl start docker
6、檢查docker信息
[root@localhost docker]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 976.5MiB
Name: localhost.localdomain
ID: 3EGY:424H:ER2C:CBQ7:KUD5:SFRJ:TVDK:XV4Y:AFYJ:SOOL:7OM6:65K5
Docker Root Dir: /mnt/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
注:
查看==Docker Root Dir: /mnt/docker==信息可看到,docker服務(wù)存儲(chǔ)位置已修改