docker修改默认存储路径
docker修改默认存储路径
方法一:通过修改docker的配置文件
docker默认的配置文件位置为:/etc/docker/daemon.json
默认配置内容为:
{
"log-level": "warn",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
}
}
这里有两种情况
低版本docker在配置json中增加
"graph":"/var/lib/docker"
高版本docker在配置json中增加"data-root":"/var/lib/docker"
将其中的/var/lib/docker
替换为想要更改的路径。(/var/lib/docker
是docker默认的存储位置)
低版本docker示例:
{
"log-level": "warn",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
},
"graph":"/var/lib/docker"
}
高版本docker示例:
{
"log-level": "warn",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
},
"data-root":"/var/lib/docker"
}
然后执行systemctl restart docker
命令重启docker服务
输入docker info
命令,查看Docker Root Dir的值可以验证是否修改成功
注意点:
通过这种方式修改docker存储路径时,如果你已经运行了部分容器,当修改docker存储路径并迁移数据之后,如果容器使用的是docker volume(注意一些容器在不指定volume的情况下会自动创建,比如mysql),那么就有可能报错,此时需要重新创建容器。
方法二:通过软链接修改
1、停止docker服务
输入systemctl stop docker
命令停止docker服务
然后使用docker info
命令验证,停止docker服务后会显示
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
2、移动原先的/var/lib/docker
中的文件到你想要的位置
以新路径为/mytest
为例
输入mv /var/lib/docker/ /mytest/
,将整个docker文件夹移动到/mytest下
然后输入ln -s /mytest/docker /var/lib/docker
创建软链接
输入systemctl start docker
命令启动docker服务
使用这种方式修改,当输入docker info
的时候,会看到
小实验:
如果我们在方法二使用软链接的基础上,再使用方法一将docker的存储路径显式更改为/var/lib/docker
(也就是docker的默认存储路径),使用docker info
查看,Docker Root Dir会是什么值呢?
实测,依然是软链接的路径,即/mytest/docker