修改默认数据存储目录
默认情况下,docker数据存储目录为/var/lib/docker,可以通过docker info查看:
1
2
| ## docker info|grep 'Docker Root Dir'
Docker Root Dir: /var/lib/docker
|
可以通过以下方式个性数据存储目录。
- 方式一,修改启动配置
/usr/lib/systemd/system/docker.service。 - 方式二,修改配置文件
/etc/docker/daemon.json。
1. 修改启动配置
查看默认的启动配置:
1
2
| ## grep 'ExecStart' /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
|
查看dockerd帮助信息:
1
2
| ## dockerd --help|grep 'data-root'
--data-root string Root directory of persistent Docker state (default "/var/lib/docker")
|
可以看到,只用增加--data-root参数就可以设置数据存储目录,我们在启动配置中增加--data-root=/data/docker配置,修改后配置如下:
1
2
| ## grep 'ExecStart' /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --data-root=/data/docker --containerd=/run/containerd/containerd.sock
|
注意,此处的数据存储目录/data/docker不需要我们手动创建。
重新加载配置并重启docker服务:
1
2
3
4
5
6
7
8
| ## 重新加载配置
## systemctl daemon-reload
## 重启docker服务
## systemctl restart docker
## 查看docker服务状态
## systemctl status docker
|
查看目录信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| ## ls -lah /data/docker/
total 52K
drwx--x--x 13 root root 4.0K Jul 29 07:19 .
drwxr-xr-x 3 root root 4.0K Jul 29 07:19 ..
drwx--x--x 4 root root 4.0K Jul 29 07:19 buildkit
drwx-----x 2 root root 4.0K Jul 29 07:19 containers
drwx------ 3 root root 4.0K Jul 29 07:19 image
drwxr-x--- 3 root root 4.0K Jul 29 07:19 network
drwx-----x 3 root root 4.0K Jul 29 07:19 overlay2
drwx------ 4 root root 4.0K Jul 29 07:19 plugins
drwx------ 2 root root 4.0K Jul 29 07:19 runtimes
drwx------ 2 root root 4.0K Jul 29 07:19 swarm
drwx------ 2 root root 4.0K Jul 29 07:19 tmp
drwx------ 2 root root 4.0K Jul 29 07:19 trust
drwx-----x 2 root root 4.0K Jul 29 07:19 volumes
## ls -lah /var/lib/docker/
total 52K
drwx--x--x 13 root root 4.0K Jul 29 07:19 .
drwxr-xr-x. 34 root root 4.0K Apr 30 22:43 ..
drwx--x--x 4 root root 4.0K Mar 17 09:12 buildkit
drwx-----x 2 root root 4.0K Mar 17 09:12 containers
drwx------ 3 root root 4.0K Mar 17 09:12 image
drwxr-x--- 3 root root 4.0K Mar 17 09:12 network
drwx-----x 38 root root 4.0K Jul 29 07:19 overlay2
drwx------ 4 root root 4.0K Mar 17 09:12 plugins
drwx------ 2 root root 4.0K Jul 29 07:19 runtimes
drwx------ 2 root root 4.0K Mar 17 09:12 swarm
drwx------ 2 root root 4.0K Jul 29 07:19 tmp
drwx------ 2 root root 4.0K Mar 17 09:12 trust
drwx-----x 2 root root 4.0K Jul 29 07:19 volumes
## du -sh /var/lib/docker/
2.1G /var/lib/docker/
## du -sh /data/docker/
244K /data/docker/
|
可以看到修改数据存储目录后,原先的存储的数据并没有完成复制到新的存储目录中。
将原来目录中的文件迁移到新的目录中:
1
2
3
4
5
6
7
8
9
10
11
12
| ## 复制原来的数据目录
## /bin/cp -rf /var/lib/docker /data/
## 重启docker服务
## systemctl restart docker
## 再次查看镜像,可以看到镜像数据又恢复了
## docker images
## 查看新的数据目录信息
## docker info|grep Root
Docker Root Dir: /data/docker
|
2. 修改配置文件
我们将先启动配置文件还原,然后再重启docker服务:
1
2
3
4
5
6
7
8
9
10
11
12
13
| ## 使用vim编辑启动文件保存后,查看启动命令
## grep 'ExecStart' /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
## 重新加载配置
## systemctl daemon-reload
## 重启docker服务
## systemctl restart docker
## 查看当前数据存储目录,可以数据存储目录已经还原了
## docker info|grep Root
Docker Root Dir: /var/lib/docker
|
修改配置文件/etc/docker/daemon.json,如果该文件不存在则创建该文件。
1
2
3
4
| ## cat /etc/docker/daemon.json
{
"data-root": "/data/docker"
}
|
然后重启docker服务:
1
2
3
4
5
6
| ## 重启docker服务
## systemctl restart docker
## 查看当前数据存储目录
## docker info|grep Root
Docker Root Dir: /data/docker
|
可以看到数据存储目录已经更新了。