Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项

简介: Linux - 记录问题:docker 迁移 更改镜像默认位置的注意事项

描述

在把docker 的默认镜像从/var/lib/docker/移动到新的路径以释放根目录空间后,使用 docker images命令查询并没有发现之前的镜像文件列表。


原因

/etc/docker/daemon.json中没有按照规范方式使用路径命名名称。


解决方式

更新Docker的配置文件(通常是/etc/docker/daemon.json),设置新的数据存储路径:注意在这里使用 docker 的特定名称来指定最后一级文件夹名称当出现-等字符时会影响docker服务启动时加载本配置内指定的数据路径

{
  "data-root": "/mnt/mydisk/docker/docker"
}

确保配置文件中的路径是新的存储路径。

附注:完整迁移方案

更改Docker的默认镜像存储路径是一个比较复杂的操作,因为它涉及到Docker内部的数据管理。如果只是更改了存储路径而没有进行适当的迁移和清理,那么可能会出现一些问题,比如:

  1. 像和容器丢失:如果新的存储路径没有包含原来路径下的数据,那么在重启服务后,Docker将无法找到原来的镜像和容器,因为它们仍然引用旧的路径。
  2. 层次结构不一致:Docker镜像是由多个层次构成的,如果这些层次没有被正确迁移到新的路径,可能会导致镜像损坏。
  3. 权限问题:更改存储路径可能会导致权限问题,特别是如果新路径的权限设置不正确,Docker可能无法访问或创建必要的文件和目录。

为了解决这些问题,应该按照以下步骤操作:

停止Docker服务

在进行任何迁移之前,确保Docker服务已经停止,以避免数据损坏或丢失。

sudo systemctl stop docker

迁移数据

将原来存储路径下的数据完整地迁移到新的路径。可以使用rsync命令来帮助完成这个操作:

sudo rsync -avzh /var/lib/docker/ /mnt/mydisk/docker/

这里假设/var/lib/docker/是旧的路径,/mnt/mydisk/docker/是新的路径。

更新Docker配置

更新Docker的配置文件(通常是/etc/docker/daemon.json

,设置新的数据存储路径:

{
  "data-root": "/mnt/mydisk/docker"
}


确保配置文件中的路径是新的存储路径。


修正权限
确保新路径的权限设置正确,Docker用户(通常是docker)需要有权限读写新路径下的数据。

重启Docker服务

一旦迁移和配置更新完成,重启Docker服务:

验证

检查Docker是否能够正常运行,并且能够访问迁移后的镜像和容器:

docker images
docker ps -a

如果在迁移过程中出现问题,或者在重启Docker服务后仍然遇到错误,可能需要检查Docker的日志文件来获取更多的错误信息。通过以下命令可以查看Docker服务的日志:

sudo journalctl -u docker.service

分享一个有趣的 学习链接:https://xxetb.xet.tech/s/HY8za

删除线格式


目录
相关文章
|
6月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
479 100
|
6月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
444 99
|
6月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
604 98
|
6月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
7月前
|
Ubuntu Linux 数据安全/隐私保护
Beta 版 Ubuntu 24.04 LTS 镜像开放下载:GNOME 46 + Linux 6.8
IT之家附上镜像下载地址:Beta 版 Ubuntu 24.04 LTS
|
5月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
692 6
|
6月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
288 8
|
7月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
478 16
|
7月前
|
运维 关系型数据库 数据库
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami
随着云原生发展,部署工具从 Bitnami 转向 Websoft9。后者基于官方镜像,提供多应用编排与统一运维,提升部署效率与维护能力,适合多系统协同场景。
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami
|
7月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。