0


Docker进阶:容器与镜像的导入和导出

Docker进阶:容器与镜像的导入和导出

💖The Begin💖点点关注,收藏不迷路💖

在这里插入图片描述

在 Docker 中,导入和导出容器以及镜像是常见的操作,**

特别是在需要迁移、备份或共享容器和镜像时

**。

1、容器(Container)和镜像(Image)的区别

**

镜像(Image):

**

1、镜像是一个只读的模板,包含了执行环境和应用程序所需的所有内容,比如文件系统、库和依赖、以及一个启动容器的配置等。镜像可以看作是一个应用程序的打包和分发形式。

2、镜像是静态的,一旦创建就不会改变。镜像通常通过 Dockerfile 来定义构建规则,并且可以基于其他镜像进行扩展和定制。

**

容器(Container):

**

1、容器是从镜像创建的运行实例,它包括了镜像的内容以及在运行时所添加的可写层。

2、容器可以被启动、停止、删除,并且可以与其他容器或主机进行通信。

3、容器是动态的,可以随时启动、停止和修改。每个容器都是相互隔离的,拥有自己的文件系统、网络和进程空间。

2、导出 Docker 容器

1、使用 docker ps -a 命令查看当前所有容器的列表,并找到要导出的容器的 Container ID。

##列出当前正在运行的容器
docker ps

##列出所有的容器,包括正在运行的和已经停止的容器
docker ps -a

例如,导出当前运行的名为mysql-5.7的容器:

在这里插入图片描述

导出容器快照:

##语法
docker export 容器ID或容器名 > 容器快照名.tar

docker export mysql-5.7> mysql-5.7-container.tar

或者

docker export ac8738c10dc9 > mysql-5.7-container02.tar

在这里插入图片描述

完成后,将会在当前目录下生成一个名为 mysql-5.7-container.tar 的容器快照文件。

3、导入 Docker 容器快照为镜像

如果需要将容器快照导入为镜像,可以按照以下步骤进行操作:

例如:将上面导出的mysql-5.7-container.tar 的容器快照导入为名为mysql-5.7-02的镜像。

在这里插入图片描述

1、运行以下命令导入容器快照为镜像:

cat mysql-5.7-container.tar | docker import- mysql-5.7-02:5.7

替换 IMAGE_NAME 和 TAG 为你希望为新镜像指定的名称和标签。

[root@zyl-server ~]# cat mysql-5.7-container.tar | docker import - mysql-5.7-02:5.7
sha256:9f36bbbdf4ae7c14944158d70dc2111b7393cf0253d5d37c487e9dbfa199c5c3
[root@zyl-server ~]# [root@zyl-server ~]# docker images
REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
mysql-5.7-025.79f36bbbdf4ae   5 seconds ago   442MB
nginx          latest    605c77e624dd   2 years ago     141MB
mysql          5.7       c20987f18b13   2 years ago     448MB
[root@zyl-server ~]# 

在这里插入图片描述

4、导出 Docker 镜像

接下来,让我们看看如何导出一个 Docker 镜像:

1、使用 docker images 命令查看当前系统中所有的 Docker 镜像,并找到要导出的镜像的 REPOSITORY 和 TAG。

docker images 

2、运行以下命令导出镜像,(通常是.tar格式):

例如:将镜像名为mysql,TAG为5.7的镜像导出为 image_mysql.tar

在这里插入图片描述

##将镜像名为mysql,TAG为5.7的镜像导出为 image_mysql.tar

docker save-o image_mysql.tar mysql:5.7

即可将 Docker 镜像保存到名为 image_mysql.tar 的压缩文件中。

在这里插入图片描述

5、导入 Docker 镜像

最后,让我们看看如何导入一个 Docker 镜像:

1、将包含要导入的镜像文件(如 image_mysql.tar)传输到目标机器。

2、运行以下命令导入镜像:

docker load-i image_mysql.tar

在这里插入图片描述

镜像成功导入后,你可以使用 docker images 命令确认镜像已经加载到系统中。

通过以上步骤,你可以轻松地导入和导出 Docker 容器以及镜像,实现容器和镜像的迁移、备份和共享。

6、docker export 和 docker save区别

1、docker export

1、导出容器的文件系统内容,

并不包含镜像的元数据和层信息

,因此导出的内容不能完全恢复成一个镜像,它只代表容器在导出时的快照状态。

2、使用 docker import 命令将该tar文件导入时,

只能创建一个新的镜像

,而无法还原容器的完整状态。

2、docker save

1、用于将

一个或多个镜像

打包成一个归档文件(通常是一个 .tar 文件)。

2、将镜像保存为一个归档文件,

包含了镜像的元数据、层信息以及实际的镜像内容

。导出的归档文件可以通过 docker load 命令重新加载到 Docker 环境中。

如果需要完整的镜像备份、迁移以及进行回滚操作,建议使用 docker save 和 docker load 命令。

7、docker import 和 docker load区别

1、docker import

1、使用 docker import 命令将一个本地的文件系统打包成一个 Docker 镜像,可以为该镜像指定一个新的名称和标签。

2、docker load

1、从归档文件中加载镜像(

通过 docker save 命令导出的

)。

2、包含了其相关的元数据。

3、在加载镜像时,它会保持原有的名称和标签(

不能修改

)。

在这里插入图片描述

💖The End💖点点关注,收藏不迷路💖

标签: docker 容器 运维

本文转载自: https://blog.csdn.net/qq_41840843/article/details/136688748
版权归原作者 运维魔法师 所有, 如有侵权,请联系我们删除。

“Docker进阶:容器与镜像的导入和导出”的评论:

还没有评论