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

删除线格式


目录
相关文章
|
1天前
|
弹性计算 安全 Cloud Native
Alibaba Cloud Linux镜像系统超好用!兼容CentOS生态,性能稳定性绝对可以!
Alibaba Cloud Linux是阿里云的自研Linux发行版,兼容CentOS/RHEL,提供长期免费支持。它针对云服务器ECS优化,适用于多种场景,如Web服务、云原生应用等。Alibaba Cloud Linux 3基于Anolis OS 8,提供安全、高性能、十年维护及丰富的开源生态。用户可在ECS购买时选择镜像安装,支持多架构并提供热补丁、解决方案和快速启动版。更换ECS操作系统是免费的。
30 5
|
2天前
|
应用服务中间件 Linux nginx
详细解读docker国内镜像源docker镜像大全
详细解读docker国内镜像源docker镜像大全
147 0
|
2天前
|
Docker 容器
Docker镜像、容器操作
Docker镜像、容器操作
18 0
|
3天前
|
应用服务中间件 Linux 数据安全/隐私保护
Linux+docker部署项目
Linux+docker部署项目
12 0
|
6天前
|
应用服务中间件 nginx 开发者
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
从 Docker Hub 拉取镜像受阻?这些解决方案帮你轻松应对
|
7天前
|
Java Docker 容器
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
27 2
|
8天前
|
网络协议 Linux Shell
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
【权限提升】Linux系统&Docker挂载&Rsync未授权&Sudo-CVE&Polkit-CVE
|
5天前
|
存储 关系型数据库 MySQL
解读 MySQL 容器信息:`docker inspect` 字段详解
解读 MySQL 容器信息:`docker inspect` 字段详解
23 1
|
5天前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
19 2
|
8天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸