准备目录
我这里是/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