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

作者:汤青松

微信:songboy8888

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Laoqi's Linux运维专列

Docker Compose 部署服务

1796
来自专栏dalaoyang

docker部署springboot项目

1674
来自专栏北京马哥教育

Docker常用命令汇总

一、查看docker信息 1、查看docker版本 docker version 2、显示docker系统的信息 docker info 二、对image的...

3549
来自专栏IT笔记

Docker学习之搭建MySql容器服务

MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法。用户可以选择RH...

4376
来自专栏JMCui

Docker 系列三(容器管理).

    指明了 -d 运行镜像,会返回容器的 id;如果不指明 -d 运行镜像,会打印出 catalina.out 的 日志,在 [crtl +c] 后,容器即...

1073
来自专栏程序员的SOD蜜

docker 学习资料收集

docker镜像怎么迁移到其他的服务器 http://www.talkwithtrend.com/Question/123589

952
来自专栏jmeter高手高高手

Docker基础操作

   Docker是一个虚拟环境容器,可以将你的环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。比如,你在本地部署了git,jenkins...

1363
来自专栏技术之路

Docker实践--部署Nodejs应用

  这个例子的目标是为了向大家展示如何在Docker的container里运行Node.js程序。我会先创建一个简单的Node.js web app,来构建一个...

3138
来自专栏编程坑太多

跟我一起学docker(四)--容器的常用操作

1433
来自专栏人工智能

发现Docker的IP地址

我们使用Eclipse Che在Docker上编写了很多实用程序。它们占用空间小,便于携带,可以在许多不同的操作系统上运行,而无需用户安装额外的软件。

2760

扫码关注云+社区

领取腾讯云代金券