docker镜像与容器的迁移

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker迁移镜像步骤 docker迁移容器步骤 docker迁移mysql容器步骤

docker容器迁移有两组命令,分别是

  • save & load :操作的是images, 所以要先把容器commit成镜像
  • export & import:直接操作容器

我们先主要看看他们的区别:
image.png

一 把容器打包为镜像再迁移到其他服务器

如把mysql这个容器(mysql是容器名)打包成镜像导出,再从其他机子上导入

image.png

把mysql容器打包为镜像

docker commit --author myt --message "create the mysql:5.7 by myt" mysql mysql:5.71
  • author 指明打包作者
  • message:指明打包描述信息
  • mysql:被打包的容器
  • mysql:5.71:打包后的镜像名称

执行上边的命令后,使用docker images可以查看新打包的镜像

image.png

导出刚打包的镜像

docker save -o mysql mysql:5.71

其中 第一个mysql是导出的文件名,可自定义。后面的mysql:5.71就是我们之前制作的新镜像。

image.png

导入镜像

把导出的mysql镜像文件,传到第二台linux机器随便一个目录, 执行下边命令导入到docker里,镜像就导入完成了

docker load -i mysql

docker images命令查看镜像列表,会发现mysql:5.71镜像已经导入进来了。

使用新导入的镜像启动容器

重新run一下,docker里的mysql服务就起来了,并且是带着第一台机器里的数据的

docker run -p 3306:3306 --name=mysql --privileged=true -v /mysql/data:/var/lib/mysql -v /mysql/log:/var/log/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.71

二 docker镜像迁移

通过将Docker镜像导出为文件,然后在目标环境中导入该文件,可以实现镜像的迁移,这里以mysql镜像迁移为例

执行docker images查看镜像列表
image.png

在源环境中运行以下命令,将镜像导出为文件

# 语法
docker save -o image.tar image_name
# 导出mysql镜像
docker save -o mysql.tar mysql

image.png

将导出的镜像文件传输到目标环境,并在目标环境中运行以下命令,将镜像导入

# 语法
docker load -i image.tar
# 导入mysql镜像
docker load -i mysql.tar

三 docker容器迁移

容器迁移包括容器的停止、导出、传输和导入,还是以mysql容器为例

  • 查看启动着的容器
docker ps

image.png

  • 停止容器
docker stop a818dc216f5c

image.png

在源环境中运行以下命令,将容器导出为文件

# 语法
docker export -o container.tar container_name
# 导出mysql容器
docker export -o mysql.tar mysql

image.png

在源环境机器执行一下命令

docker ps --no-trunc

下边这个结果要记下来,在目标机器启动容器时用得到
image.png

将导出的容器文件传输到目标环境,然后在目标环境中运行以下命令,将容器导入

# 语法
docker import container.tar [new-image-name]
# 导入mysql容器
docker import mysql.tar mysql:5.7

在目标环境中启动导入的容器

# 语法
docker run container_name
# 运行mysql容器 注意,最后的“docker-entrypoint.sh mysqld” 要根据前边源机器执行docker ps --no-trunc的结果来变化
docker run -p 3306:3306 --name=mysql --privileged=true -v /mysql/data:/var/lib/mysql -v /mysql/log:/var/log/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7 docker-entrypoint.sh mysqld
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
46 28
|
6天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
124 15
|
6天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
39 23
|
16天前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
93 26
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
87 27
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
74 22
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
225 93
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
62 17
|
1月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
120 12
|
4月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
136 1