type
Post
status
Published
date
Nov 5, 2024
slug
summary
tags
category
icon
password
上传镜像
在有网机器pull镜像在save
docker pull --platform linux/amd64 mysql:5.7.44-oracle
导出镜像
将镜像mysql:5.7.44-oracle 打包输出成mysql.5.7.44-docker.img文件
docker save -o mysql.5.7.44-docker.img mysql:5.7.44-oracle
在离线机器load镜像
将save生成的镜像上传到离线机器上
加载文件生成本地镜像
docker load -i mysql.5.7.44-docker.img
或
docker load < mysql.5.7.44-docker.img
查看镜像
docker images
测试
复制旧数据
docker /opt/mysql /opt/mysql-5.7.44
启动
不知道原来启动命令的需要通过docker inspect查看信息整合如下信息,
Cmd: 容器启动时执行的命令。
Image: 使用的镜像。
Env: 环境变量。
ExposedPorts: 暴露的端口。
HostConfig: 包括挂载卷、网络模式、端口映射等。
需要主要的是ENV有些是镜像自带的,需要通过镜像详情查看构建如MySQL到docker hub进到镜像详情可查看分层结构

docker run -d \
--name mysql-5.7.44 \
-p 8081:3306 \
-v /opt//mysql-5.7.44/logs/conf:/etc/mysql/mysql.conf.d \
-v /opt/mysql-5.7.44/logs:/var/log/mysql \
-v /opt/mysql-5.7.44/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password \
--restart always \
--log-opt max-size=1g \
mysql:5.7.44-oracle \
docker-entrypoint.sh mysqld
验证
查看日志
docker logs 容器id(docker ps)
成功后客户端登录查看是否正常
切换
停掉原容器,新建新版本容器
挂载到旧容器原先挂载的目录(前面测试不能再就容器启动时挂载否则启动不起来因为文件已经被占用)
docker run -d \
--name mysql-5.7.44 \
-p 3306:3306 \
-v /opt/mysql/logs/conf:/etc/mysql/mysql.conf.d \
-v /opt/mysql/logs:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password \
--restart always \
--log-opt max-size=1g \
mysql:5.7.44-oracle \
docker-entrypoint.sh mysqld
验证
docker logs 容器id(docker ps),查看启动日志
客户端登录是否正常
登录相关系统查看是否正常
收尾
mv mysql-5.7.44 mysql.bak,将mysql-5.7.44改为mysql.bak备份
删除上传镜像
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:chenyou
- 链接:https://blog.chenyou.top/article/135bce15-760d-80d1-bb93-fd97bd323302
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

