把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
相关推荐
梅孔立13 分钟前
Docker 容器网络不通:Tomcat 无法解析 MySQL、Nginx 无法反代 Tomcat 的生产级排查与治理
网络·docker·tomcat
螺蛳粉 螺蛳粉9 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
知已难寻10 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning11 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
say_fall11 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii12 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
共享家952712 小时前
408 操作系统第一章
服务器·数据库·windows
PellyKoo12 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
时早玖沐13 小时前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent
云飞云共享云桌面13 小时前
1台SolidWorks服务器如何承载10个设计并发?
运维·服务器·网络·3d·制造