docker安装目录迁移的两种常用方法

 更新时间:2023年05月22日 11:45:34   作者:心如止水-WTF  
docker目录的迁移其实非常简单,今天小编给大家分享两种方法帮助大家解决docker安装目录迁移问题,感兴趣的朋友跟随小编一起看看吧

在安装docker时通常是默认安装的系统盘目录/var/lib/docker,而该目录通常是比较小的,一旦镜像过多就可能出现docker无法运行的情况,这时进行docker目录的迁移就可以很好地解决问题。

docker目录的迁移其实非常简单,有以下两种方法可以实现。

方法一(推荐)

1) 目录拷贝

docker镜像, 容器等信息通常是默认存储在/var/lib/docker目录下的,因此需要先将/var/lib/docker整个目录拷贝到需要迁移的目录中去

1.停掉docker服务: systemctl stop docker

2.将docker存储目录拷贝到要迁移的目录中去(例如,此处为/home/docker/lib/): rsync -r -avz /var/lib/docker /home/docker/lib/

2) 链接迁移目录到原目录

mv /var/lib/docker /var/lib/docker-old
ln -s /home/docker/lib/docker /var/lib/

3) 重启docker和验证

重启docker: systemctl start docker / systemctl restart docker
验证镜像和容器可以正常运行,即可删除/var/lib/docker-old目录(注意:在未确定镜像和容器正常运行前,千万别删除/var/lib/docker-old目录)

方法二

1) 目录拷贝

和方法1一样进行目录拷贝迁移

1.停掉docker服务: systemctl stop docker

2.将docker存储目录拷贝到要迁移的目录中去(例如,此处为/home/docker/lib/): rsync -r -avz /var/lib/docker /home/docker/lib/

2) 修改配置

1.如果不存在配置目录则创建,存在则忽略:mkdir -p /etc/systemd/system/docker.service.d/

2.编辑devicemapper.conf: vi /etc/systemd/system/docker.service.d/devicemapper.conf , 内容如下:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/home/docker/lib/docker

3.vi /etc/docker/daemon.json 添加 {"storage-driver": "devicemapper" } , 此处不修改可能会出现Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

3) 重启 docker和验证

  • 重新加载systemd管理器配置:systemctl daemon-reload
  • 重启docker服务: systemctl restart docker
  • 看目录是否更改:docker info ; 显示Docker Root Dir: /home/docker/lib/docker 则表明修改成功
  • 验证镜像和容器是否可以正常运行,如果正常即可删除原来的/var/lib/docker目录

参考链接:

https://www.cnblogs.com/insist-forever/p/11739207.html 

https://github.com/coreos/bugs/issues/2340

到此这篇关于docker安装目录迁移多种方法的文章就介绍到这了,更多相关docker安装目录迁移内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何给一个正在运行的Docker容器动态添加Volume

    如何给一个正在运行的Docker容器动态添加Volume

    这篇文章主要介绍了如何给一个正在运行的Docker容器动态添加Volume,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Docker命令行入门大全(这18条,你不得不知)

    Docker命令行入门大全(这18条,你不得不知)

    Docker有成千上百万的命令行。因此Docker文档内容十分丰富,同时又让刚入门的新手感到不知所措。在本文中,我将重点介绍运行Docker的关键命令。
    2019-09-09
  • docker run 运行容器自动结束的解决

    docker run 运行容器自动结束的解决

    这篇文章主要介绍了docker run 运行容器自动结束的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • dify docker部署全过程

    dify docker部署全过程

    Dify是一款开源的LLM应用开发平台,融合了后端即服务和LLMOps的理念,使开发者可以快速搭建生产级的生成式AI应用,它提供了一系列关键技术栈,包括对数百个模型的支持、直观的Prompt编排界面、高质量的RAG引擎、稳健的Agent框架和灵活的流程编排
    2026-01-01
  • Docker 安装 Jenkins 并解决初始安装插件失败问题

    Docker 安装 Jenkins 并解决初始安装插件失败问题

    这篇文章主要介绍了Docker 安装 Jenkins 并解决初始安装插件失败问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • docker容器内服务随容器自动启动的几种方案

    docker容器内服务随容器自动启动的几种方案

    Docker是一种轻量级的容器化平台,可以帮助开发者快速部署、运行和管理应用程序,这篇文章主要给大家介绍了关于docker容器内服务随容器自动启动的几种方案,需要的朋友可以参考下
    2024-07-07
  • 使用Docker+Nginx部署vue项目详细图文教程

    使用Docker+Nginx部署vue项目详细图文教程

    这篇文章主要给大家介绍了关于使用Docker+Nginx部署vue项目的相关资料,文中通过图文介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • Docker Compose 与 Harbor 私有仓库详解

    Docker Compose 与 Harbor 私有仓库详解

    本文将探讨Docker Compose多容器编排工具与Harbor企业级私有仓库的核心技术,帮助读者掌握从容器管理到镜像安全存储的完整解决方案,感兴趣的朋友一起看看吧
    2025-06-06
  • Docker Gitlab+Jenkins+Harbor构建持久化平台操作

    Docker Gitlab+Jenkins+Harbor构建持久化平台操作

    这篇文章主要介绍了Docker Gitlab+Jenkins+Harbor构建持久化平台操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker安装部署Mysql8的过程(以作数据持久化)

    Docker安装部署Mysql8的过程(以作数据持久化)

    这篇文章主要介绍了Docker安装部署Mysql8(以作数据持久化),首先创建容器并进行持久化处理,接着配置远程连接并尝试,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09

最新评论