把docker的镜像文件从一台服务器中,迁移至另一台服务器

准备目录

我这里是/home/DockerImagesBackups/

1. 导出镜像

我想处理的docker镜像"delron/fastdfs "、"tomcat"、"mysql";

下载镜像

bash 复制代码
docker save -o /data/backup/fastdfs.tar delron/fastdfs:latest
docker save -o /data/backup/tomcat.tar tomcat:9.0.73-jdk8-corretto-al2
docker save -o /data/backup/mysql.tar mysql:8.0.32

下载镜像-例子:1

bash 复制代码
# 查看镜像
C:\Users\Administrator>docker images
REPOSITORY                         TAG                        IMAGE ID       CREATED         SIZE
gitea/gitea                        1.26.4                     028a5a345719   2 weeks ago     173MB
mcr.microsoft.com/mssql/server     2022-latest                88ac6849d0a1   2 months ago    1.67GB
mcr.microsoft.com/dotnet/aspnet    8.0                        c4a18dfeca5e   8 months ago    218MB
mcr.microsoft.com/dotnet/samples   aspnetapp                  f72fb860597d   8 months ago    135MB
btpanel/baota                      latest                     0a6f1b580252   19 months ago   1.71GB
nginx                              latest                     5ef79149e0ec   23 months ago   188MB
tomcat                             latest                     c2a444ea6cd7   23 months ago   508MB
redis                              latest                     dae83f665c92   23 months ago   117MB
mysql                              latest                     7ce93a845a8a   23 months ago   586MB
tomcat                             9.0.73-jdk8-corretto-al2   5b5414c0bbbb   3 years ago     382MB
ruoyiadmin                         latest                     47dae0ecd6da   3 years ago     526MB
tomcat                             8.5.46-jdk8-openjdk        8973f493aa0a   6 years ago     508MB
delron/fastdfs                     latest                     8487e86fc6ee   8 years ago     464MB
# 把镜像导出到指定位置
C:\Users\Administrator>docker save -o "D:\软件\Docker\DockerImagesBackups\mssql2022.tar" mcr.microsoft.com/mssql/server:2022-latest

2. 直接把目标目录授权给 yourName(一劳永逸)

这里的授权是给你目前登录的用户;

如果你上传报错执行该操作

bash 复制代码
# 1. 用 sudo 创建目录(如果还不存在)
sudo mkdir -p /data/DockerImagesBackups

# 2. 把该目录的所有权改为 yourName(这样你就能随意拖拽上传了)
sudo chown yourName:yourName /data/DockerImagesBackups

改完权限后,不需要重启 MobaXterm ,直接在左侧 SFTP 面板里重新进入 /data/DockerImagesBackups,再次拖拽上传 fastdfs2018.tar,就不会报错了。

进入到指定目录

bash 复制代码
 ls -lh /data/DockerImagesBackups/

命令运行结果

bash 复制代码
ls -lh /data/DockerImagesBackups/
total 1.5G
-rw-rw-r-- 1 yourName yourName 456M Jul  5 13:02 fastdfs2018.tar
-rw-rw-r-- 1 yourName yourName 166M Jul  5 13:02 gitea1.26.4.tar
-rw-rw-r-- 1 yourName yourName 520M Jul  5 13:03 mysql8.0.32.tar
-rw-rw-r-- 1 yourName yourName 372M Jul  5 13:04 tomcat9.0.73-jdk8.tar

确认当前用户有 Docker 操作权限

如果你的用户 yourName 已经在 docker 用户组中,则不需要 sudo,直接运行即可。

如果不在,需要加 sudo 执行(或先将自己加入 docker 组,然后重新登录)。

快速检查是否在 docker 组:

bash 复制代码
groups yourName

命令运行结果

bash 复制代码
 :~$ groups yourName
yourName: yourName adm cdrom sudo dip plugdev users lxd docker

如果输出中包含 docker,则无权限问题。否则,执行:

bash 复制代码
sudo usermod -aG docker yourName

然后注销并重新登录(或重启终端)使权限生效。

3. 执行上传镜像

命令运行结果

bash 复制代码
 ~$ docker load -i /data/DockerImagesBackups/fastdfs2018.tar
Loaded image: delron/fastdfs:latest

 :~$ docker load -i /data/DockerImagesBackups/tomcat9.0.73-jdk8.tar
Loaded image: tomcat:9.0.73-jdk8-corretto-al2

 :~$ docker load -i /data/DockerImagesBackups/mysql8.0.32.tar
Loaded image: mysql:8.0.32

 :~$ docker load -i /data/DockerImagesBackups/gitea1.26.4.tar
Loaded image: gitea/gitea:1.26.4

4. 查看镜像是否上传成功

bash 复制代码
:~$ docker images
                                                                                                                                                                 i Info →   U  In Use
IMAGE                             ID             DISK USAGE   CONTENT SIZE   EXTRA
delron/fastdfs:latest             c8f11def1449        980MB          478MB
gitea/gitea:1.26.4                c59f0aad3fc6        349MB          174MB
mysql:8.0.32                      8e756150209e       1.12GB          545MB
tomcat:9.0.73-jdk8-corretto-al2   0664c240b665        799MB          390MB

延伸阅读 - 安装镜像/初始化容器

  • 运行容器(带 --restart=always 确保随系统启动)
  • 一定要注意挂载目录以及目录结构
bash 复制代码
:~$ docker images
IMAGE                             ID             DISK USAGE   CONTENT SIZE   EXTRA
delron/fastdfs:latest             c8f11def1449        980MB          478MB
gitea/gitea:1.26.4                c59f0aad3fc6        349MB          174MB    U
mysql:8.0.32                      8e756150209e       1.12GB          545MB    U
redis:latest                      9ae6ef44c08e        248MB          120MB
tomcat:9.0.73-jdk8-corretto-al2   0664c240b665        799MB          390MB

mysql 安装

bash 复制代码
docker run -d --name mysql --restart=always -p 3306:3306 -v /data/DockerContainers/mysql8.0.32/data:/var/lib/mysql -v /data/DockerContainers/mysql8.0.32/conf.d:/etc/mysql/conf.d -v /data/DockerContainers/mysql8.0.32/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.32

redis 安装

bash 复制代码
docker run -d --name redis --restart=always  -p 6379:6379  -v /data/DockerContainers/redis/data:/data -v /data/DockerContainers/redis/redis.conf:/usr/local/etc/redis/redis.conf redis:latest redis-server /usr/local/etc/redis/redis.conf

redis.conf文件内容

bash 复制代码
# 设置数据库数量为 50
databases 50

# 设置密码
requirepass redis123

# 持久化配置(可选,建议开启)
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof" 

gitea安装

bash 复制代码
docker run -d --name gitea --restart=always  -p 3000:3000 -p 2222:22  -v /data/DockerContainers/gitea1.26.4/data:/data gitea/gitea:1.26.4
相关推荐
ydyd202604211 小时前
设备OEE怎么提升?数据采集+分析优化的完整方案
java·服务器·前端
TheBestRucy2 小时前
基于Dify的旅游攻略&王者荣耀攻略智能助手项目
服务器·开发语言·人工智能·python·算法·旅游
zfoo-framework2 小时前
安装pi agent 支持duojie和deepseek
java·服务器·前端
梅菲塔亚2 小时前
Keepalived高可用全解析
linux·运维·服务器·开发语言·网络·php
RobinDevNotes3 小时前
K8s+Ray+vLLM打穿大模型全生命周期(有实践步骤)
人工智能·云原生·容器·kubernetes·生活·vllm
15Moonlight3 小时前
Linux系统(02):基础开发工具
linux·运维·服务器
雨声不在3 小时前
docker-android 重启后镜像起不来
android·docker·容器
hxhy003 小时前
服务器挖矿排查与清理
运维·服务器
lightqjx3 小时前
VS Code连接Linux远端服务器的方法
linux·服务器·vs code