Docker进阶:容器与镜像的导入和导出
- 1、容器(Container)和镜像(Image)的区别
- 2、导出 Docker 容器
- 3、导入 Docker 容器快照为镜像
- 4、导出 Docker 镜像
- 5、导入 Docker 镜像
- 6、docker export 和 docker save区别
- 7、docker import 和 docker load区别
💖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-02 5.7 9f36bbbdf4ae 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💖点点关注,收藏不迷路💖
|