Docker(三):镜像导入与导出、保存与加载、在Docker容器中安装软件

 

相关阅读:

Docker(一):Docker的安装与常用命令

Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit

Docker(三):Docker镜像导入与导出、恢复与加载与在Docker容器中安装软件

Docker(四):使用Docker部署tomcat、mysql、nginx文件服务器


 

一、镜像的导入与导出:

import 与export 命令通常用于Docker镜像的导入导出。

1、将镜像导出到文件:

(1)命令格式:docker export  已经存在的镜像id或者镜像名称 > 导出的镜像路径和文件名称.tar

(2)举例:docker export cbe3cb7799ed > test1.tar

2、基于导出的文件导入一个新镜像:

(1)命令格式:docker import – 新镜像的路径和名称<导出的镜像名称.tar

(2)举例:docker import – test1 < test1.tar

 

 二、镜像的保存与加载:

save 和 load 命令,常用于镜像的保存与加载。

1、保存镜像:

(1)命令格式:docker save -o 保存后镜像的路径和名称.tar  已经存在的镜像id或者镜像名称

(2)举例:docker save -o test2.tar test2

2、加载镜像:

(1)命令格式:docker load < 要导入的镜像名称.tar

(2)举例:docker load < test2.tar

 

三、在Docker容器中安装软件:

1、安装步骤:

(1)使用 " docker exec -it 容器id或容器名 /bin/bash" 命令进入容器内部;

(2)使用 " apt-get update "命令同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

(3)等更新完毕以后,再输入 " apt-get install " 命令即可。

2、示例:在tomcat容器中安装vim:

#第一步:进入tomcat容器内部,tomcat1为容器名
[root@izwz9ib5he33fx3jnuis2xz ~]# docker exec -it tomcat1 /bin/bash
#第二步:更新索引源
root@b2e9025226f0:/usr/local/tomcat# apt-get update
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]                                      
Ign:2 http://deb.debian.org/debian stretch InRelease                                                                      
Get:3 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB]
Get:4 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [440 kB]
Hit:5 http://deb.debian.org/debian stretch Release    
Fetched 625 kB in 5s (119 kB/s)                           
Reading package lists... Done
#第三步:安装vim
root@b2e9025226f0:/usr/local/tomcat# apt-get install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vim is already the newest version (2:8.0.0197-4+deb9u1).
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

至此,就成功在容器tomcat1中安装了vim软件了。

 

 

### 如何导出 Docker 镜像保存其配置 要导出一个正在运行的容器或将镜像保存到本地文件系统,可以分别使用 `docker export` `docker save` 命令。以下是具体方法: #### 使用 `docker export` 导出容器 如果目标是从一个已有的容器中提取数据或文件系统,则可以使用 `docker export` 命令。此命令会将指定容器的内容打包成一个 tar 文件。 ```bash docker export {{container-id-or-name}} > {{output-file.tar}} ``` 该命令适用于导出容器的状态及其文件系统内容[^2]。注意,这种方式不会保留原始镜像中的元数据(如标签、历史记录等),仅导出容器内的文件结构。 #### 使用 `docker save` 保存镜像 为了保存整个镜像以及它的所有层元数据信息,应使用 `docker save` 命令。这不仅包含了镜像的数据部分,还保持了完整的镜像层次关系其他属性。 ```bash docker save -o {{output-file.tar}} {{image-name}} ``` 通过 `-o` 参数指定了输出的目标文件名,而后面则是需要被保存的具体镜像名称或者 ID[^1]。这种方法非常适合备份目的或是迁移环境时携带完整镜像定义的情况。 #### 结合两者操作流程说明 当希望既获得某个特定时刻下基于某镜像启动起来之后经过修改后的最终状态(即对应的那个容器),又想保留原来创建这个新状态所依赖的基础镜像设置的话: - 先利用 `docker commit` 把现有改动固定下来形成新的镜像; - 接着再调用上面提到过的两种方式之一来完成实际物理存储过程。 例如先提交更改成为正式版: ```bash docker commit {{existing-container-id}} my_new_image_name:version_tag ``` 然后再执行保存动作: ```bash docker save -o /path/to/my_saved_image.tar my_new_image_name:version_tag ``` 这样就实现了既要得到更新后实例又要维持原有架构不变的目的。 ```python import os def export_container(container_id_or_name, output_file_path): """Export a running container's filesystem into a tarball.""" command = f"docker export {container_id_or_name} > {output_file_path}" result = os.system(command) return result == 0 def save_docker_image(image_name, destination_tar): """Save entire docker image including layers and metadata to local disk.""" command = f"docker save -o {destination_tar} {image_name}" status_code = os.system(command) return status_code == 0 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张维鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值