docker修改挂载目录
当linux安装好docker-ce后应该及时考虑容器挂载目录的问题,避免后续出现磁盘不足问题导致异常
情况一:刚安装docker
修改容器配置文件,增加参数,默认路径为 /var/lib/docker/
[root@ceshi-128 ~]# vi /etc/docker/daemon.json
{
"data-root":"/data/docker" #根据自己所选的路径修改即可
}
重启服务
[root@ceshi-128 ~]# systemctl restart docker
- 如果增加上述配置后出现服务起不来,看下自己docker的版本是不是过低导致,可以使用
"graph":"/data/docker"
试试
情况二:已经有镜像再运行
- 此时比较麻烦的是,不论是docker服务本身还是镜像层,我们一般都会使用持久化方式去运行,所以不能只是修改配置就能处理的
新增数据盘路径为 /liujiangxu
- 停止服务
[root@ceshi-128 ~]# systemctl stop docker
- 删除目前所运行的镜像,避免后续镜像启动失败
[root@ceshi-128 ~]# docker rm -f $(docker ps -aq)
- 修改配置文件,增加挂载路径
[root@ceshi-128 ~]# vi /etc/docker/daemon.json
{
"data-root":"/liujiangxu/docker"
}
- 移动默认挂载目录(默认路径下存储之前docker持久化的文件,比如镜像、网络、卷等自身信息)不做这部后面你会发现服务起来是空的,什么也没有
[root@ceshi-128 ~]# cp -r /var/lib/docker /liujiangxu/docker
- 重启docker服务
[root@ceshi-128 ~]# systemctl restart docker
- 查看服务docker目录信息,成功替换
[root@ceshi-128 grafana]# docker info | grep Dir
Docker Root Dir: /liujiangxu/docker
- 将原镜像文件移动至新盘目录中(也可以不用做7.8步骤,因为我原分区空间不够都需要移动)
[root@ceshi-128 ~]# cp -rp /data/grafana/ /liujiangxu/
- 修改原镜像文件持久化挂载路径"volumes",
version: "3.5"
....
volumes:
- /liujiangxu/grafana/data:/var/lib/grafana
- 查看镜像启动挂载文件,已经发生改变
[root@ceshi-128 grafana]# docker-compose -f grafana.yaml up -d
[root@ceshi-128 grafana]# docker inspect grafana | grep liujiangxu
"ResolvConfPath": "/liujiangxu/docker/containers/b6830e8302e4863985e297824091b2020cb984c8f3373596ac895529ed6466d0/resolv.conf",
"HostnamePath": "/liujiangxu/docker/containers/b6830e8302e4863985e297824091b2020cb984c8f3373596ac895529ed6466d0/hostname",
"HostsPath": "/liujiangxu/docker/containers/b6830e8302e4863985e297824091b2020cb984c8f3373596ac895529ed6466d0/hosts",