0%

Docker修改工作目录

需求描述

docker的默认工作目录(存储目录)是/var/lib/docker,会存放镜像文件、容器日志和写入到容器临时目录的文件等,默认挂载在系统盘。

而系统盘一般都不会太大,因此最好把docker工作目录更改到数据盘。

本文中,我们会把docker的工作目录从/var/lib/docker改到/data/docker,其中/data目录挂载了数据盘。

思路

想到两个方法:

  • 修改配置法:拷贝数据到新目录,修改工作目录配置到新目录。
  • 软链法:拷贝数据到新目录,使用新目录的软链替换原来的工作目录。不推荐,不知道有没有什么隐藏坑。

修改配置法

参考文档How to change docker root data directory

1、关闭docker

1
sudo systemctl stop docker

Warning: Stopping docker.service, but it can still be activated by: docker.socket
该警告意味着:如果你试图连接到docker socket,而docker服务没有运行,系统将自动启动docker。
这是因为除了docker.service单元文件,还有一个docker.socket单元文件,用于套接字激活。

这里可以使用另外一个命令关闭docker,禁止套接字激活。

1
sudo systemctl stop docker.socket

2、更改docker数据存储路径
sudo vim /etc/docker/daemon.json
添加:

1
2
3
{
"data-root": "/data/docker"
}

3、拷贝docker数据文件到新路径

1
2
3
sudo mkdir -p /data/docker
sudo cp -rf /var/lib/docker/. /data/docker
sudo mv /var/lib/docker /var/lib/docker.old

4、重启docker&确认工作目录

1
2
sudo systemctl start docker
sudo docker info | grep Dir

软链法

1、关闭docker

1
2
sudo systemctl stop docker
sudo systemctl stop docker.socket

2、拷贝docker数据文件到新路径

1
2
3
sudo mkdir -p /data/docker
sudo cp -rf /var/lib/docker/. /data/docker
sudo mv /var/lib/docker /var/lib/docker.old

3、创建软链

1
sudo ln -s /data/docker /var/lib/docker

4、重启docker&确认工作目录

1
2
sudo systemctl start docker
sudo docker info | grep Dir
  • 本文作者: 好好学习的郝
  • 本文链接: https://www.voidking.com/dev-docker-data-root/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!源站会及时更新知识点及修正错误,阅读体验也更好。欢迎分享,欢迎收藏~