docker 镜像与容器的导入导出操作实践

简介: 公司有一台测试服务器,网速比较慢,特别是下载一些国外站点镜像的时候,而我本机则比较快,还有梯子,所以在思考一个问题;是否能在我本地把镜像下载下来,然后复制到测试服务器中。

一、背景


公司有一台测试服务器,网速比较慢,特别是下载一些国外站点镜像的时候,而我本机则比较快,还有梯子,所以在思考一个问题;是否能在我本地把镜像下载下来,然后复制到测试服务器中。


二、思路


我一开始想的是把镜像文件直接拷贝到测试服务器对应的目录,不过在查找相关资料发现docker本身就提供了导入和导出的功能,因此到这个过程到简单了,docker导出和导入的功能中也分了镜像与容器的概念。


2.1 容器


导出容器的命令:


docker export furious_bell > /home/myubuntu-export-1204.tar


导入容器的命令:


docker import - /home/myubuntu-export-1204.tar


2.2 镜像


保存镜像命令:


docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar


加载镜像命令:


docker import - /home/myubuntu-export-1204.tar


三、实际过程


我的操作过程是使用镜像来导出导入,因为这个镜像是用于linux下的检测,而我的电脑是mac系统,因此根本无法运行这个容器;


这里顺带提一下导出镜像与导出容器的区别,如果是导出容器,是不会导出这个镜像之前的层信息的,也就是说无法回滚,而导出镜像他的信息更加完整,还可以通过命令 (docker images --tree) 进行查看。


3.1 查看本地镜像


docker images


输入命令后可以看到我们docker中所有的镜像列表


REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
grafana/grafana                         v1                  34518891d49b        6 days ago          246MB
ubuntu                                  latest              735f80812f90        2 weeks ago         83.5MB
grafana/grafana                         latest              3e16e05be9a3        2 weeks ago         245MB
prom/mysqld-exporter                    latest              e80442e91b90        5 weeks ago         17MB
centos                                  latest              49f7960eb7e4        2 months ago        200MB
ppabc/lanmp-alpine                      latest              c7dfcbceae73        2 months ago        144MB
quay.io/prometheus/node-exporter        latest              3082fb6ef716        2 months ago        22.9MB


3.2 保存镜像为文件


输入下面的命令将保存镜像到文件,第三个参数为镜像ID,后面的路径为我们要保存的位置。


docker save 3082fb6ef716 >  ~/dockerFile/node-exporter.tar


当docker执行完成之后,我们可以通过命令来查看是否保存成功,如下命令


cd ~/dockerFile && ls -al


可以看到,我们文件夹下一句存在导出的镜像


total 47520
drwxr-xr-x   3 song  staff       102  8 10 11:00 .
drwxr-xr-x+ 39 song  staff      1326  8 10 11:00 ..
-rw-r--r--   1 song  staff  24327680  8 10 10:24 node-exporter.tar


3.3 复制文件到服务器


可以通过SCP命令复制镜像到测试服务器


scp ~/dockerFile/node-exporter.tar tangqingsong@192.168.43.22:/home/tangqingsong/


复制完成之后,在登陆服务器中进行查看是否成功,命令


ls -al node-exporter.tar


如果能看到以下文件信息,则代表复制成功


-rw-r--r-- 1 tangqingsong tangqingsong 24327680 8月  10 10:24 node-exporter.tar


3.4 服务器导入镜像


docker导入镜像命令


docker load < /home/tangqingsong/node-exporter.tar


导入镜像过程中的输出信息


ad68498f8d86: Loading layer [==================================================>]  4.628MB/4.628MB
ad8512dce2a7: Loading layer [==================================================>]  2.781MB/2.781MB
cc1adb06ef21: Loading layer [==================================================>]   16.9MB/16.9MB
Loaded image ID: sha256:3082fb6ef716808294633b41e3ab10f182505c4d1d70c758a443ba75fb2ef8f1


3.5 查看导入结果


查看docker的镜像列表


docker images


从镜像列表中可以看到我刚才导入的文件已经存在了镜像列表中


REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
ubuntu                       18.04               113a43faa138        2 months ago        81.2MB
quay.io/calico/node          v3.1.0              ad8d84fa5f8c        4 months ago        277MB


目录
相关文章
|
7月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
655 115
|
6月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
705 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
721 6
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
606 6
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
895 4
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1132 108
|
9月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
671 57