Docker离线安装以及本地yum源构建|Docker images导出和导入

转自:https://blog.csdn.net/joniers/article/details/64122820

https://www.jianshu.com/p/8408e06b7273

在docker的使用过程中有时候会遇到一些私有化部署的问题,就是在一些无法上网的机器上面安装使用dokcer,这就引出了docker的离线安装的问题,docker要如何进行离线安装呢?让我们接下来一步步阐述。

环境:

  • centos 7.0 内核版本3.10.0-229.el7.x86_64
  • docker 1.12.6版本

基本思路:

  1. 在可以连接外网的机器(未安装过docker,同时跟局域网要安装docker的机器系统版本一致)通过yum命令将rpm以及相关的依赖下载完成
  2. 将下载完成的rpm包,拷贝到局域网机器上面
  3. 构建本地yum源
  4. 使用yum install docker安装,安装完成

docker离线安装包的下载

要下载docker离线安装包,需要通过yum的离线下载命令进行,一般我们使用yum install下载安装包会进行安装,安装完成后删除下载的安装包,yum提供了一种只下载安装包,但是不进行安装的方法: 
yum install –downloadonly –downloaddir=/home/docker/dockerRpm docker 
通过这个命令,我们可以将docker相关的rpm包下载到/home/docker/dockerRpm目录,如图: 
这里写图片描述

copy rpm包到需要安装docker的机器上面

将docker的rpm包拷贝到需要安装docker的局域网集群上面,例如:/home/yum-custom/packages

构建本地yum源

  1. 构建本地源之前,需要在本地安装createrepo,用于构建本地源,方法,同docker包下载,通过yum install –downloadonly下载好,copy到该机器上面,通过rpm -ivh进行安装,createrepo关联包很少,不详细描述。
  2. 删除/etc/yum.repo.d目录下文件,创建新的*.repo文件,如:docker.repo,进行配置,如图: 
    这里写图片描述
  3. createrepo -d /home/yum-custom/设置本地源,执行成功后本地源就设置完成了
  4. 输入yum repolist看是否能看到自己构建的本地源
  5. 清除缓存,yum clean all
  6. 创建缓存,yum makecache
  7. 看本地源是否配置成功,通过yum list看是否输出了新的rpm包,如果能查询到,证明配置成功

安装docker

yum install docker,安装完成

之前已配置好基础镜像,其他地方也需要用到这些镜像时怎么办呢?
答案:镜像的导入和导出功能。

  1. 镜像的保存
[root@wxtest1607 ~]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
tomcat8                   3.0                 90457edaf6ff        6 hours ago         1.036 GB
[root@wxtest1607 lixr]# docker save 9045 > tomcat8-apr.tar
[root@wxtest1607 lixr]# ls -lh
总用量 1.2G
-rw-r--r--  1 root root  1005M 8月  24 17:42 tomcat8-apr.tar
  1. 镜像的导入
    当前缺一台CentOS7服务器,实践方式变成,先删除image,然后再导入,折腾呀!
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
tomcat8                   3.0                 90457edaf6ff        7 hours ago         1.036 GB
[root@wxtest1607 lixr]# docker rmi 9045
Untagged: tomcat8:3.0
Deleted: sha256:90457edaf6ff4ce328dd8a3131789c66e6bd89e1ce40096b89dd49d6e9d62bc8
Deleted: sha256:00df1d61992f2d87e7149dffa7afa5907df3296f5775c53e3ee731972e253600
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
[root@wxtest1607 lixr]# docker load < tomcat8-apr.tar
60685807648a: Loading layer [==================================================>] 442.7 MB/442.7 MB
[root@wxtest1607 lixr]# yer [>                                                  ] 527.7 kB/442.7 MB
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              90457edaf6ff        7 hours ago         1.036 GB
[root@wxtest1607 lixr]# docker tag 9045 tomcat8-apr:3.0
[root@wxtest1607 lixr]# 
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
tomcat8-apr               3.0                 90457edaf6ff        7 hours ago         1.036 GB
  1. 容器的导出
[root@wxtest1607 lixr]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                               NAMES
b91d9ad83efa        9045                "/bin/bash"         18 seconds ago      Up 15 seconds                                           trusting_colden
f680b58163ab        aa79                "/bin/bash"         8 hours ago         Up 8 hours                                              stupefied_mayer
4db6aa9b8278        4052                "mysqld_safe"       21 hours ago        Up 21 hours         8080/tcp, 0.0.0.0:53307->3306/tcp   nostalgic_leavitt
7bcfe52af7a0        599d                "mysqld_safe"       21 hours ago        Up 21 hours         8080/tcp, 0.0.0.0:53306->3306/tcp   sleepy_hodgkin
[root@wxtest1607 lixr]# 
[root@wxtest1607 lixr]# 
[root@wxtest1607 lixr]# docker export b91d9ad83efa > tomcat80824.tar
[root@wxtest1607 lixr]# ls -lh
总用量 2.1G
-rw-r--r--  1 root root   943M 824 18:37 tomcat80824.tar
-rw-r--r--  1 root root  1005M 824 17:42 tomcat8-apr.tar

b91d9ad83efa 是 镜像90457edaf6ff 启动后的容器。
镜像导出的文件比容器导出文件大哦。

  1. 容器的导入
[root@wxtest1607 lixr]# docker import tomcat80824.tar
sha256:880fc96a6bb6abdfa949a56d40ef76f32f086fa11024ddcfb4e4e8b22041d5f2
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              880fc96a6bb6        6 seconds ago       971.9 MB
[root@wxtest1607 lixr]# docker tag 880f tomcat80824:1.0
[root@wxtest1607 lixr]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED              SIZE
tomcat80824               1.0                 880fc96a6bb6        About a minute ago   971.9 MB
tomcat8-apr               3.0                 90457edaf6ff        8 hours ago          1.036 GB
  1. 镜像和容器 导出和导入的区别
    镜像导入和容器导入的区别:
    1)容器导入 是将当前容器 变成一个新的镜像
    2)镜像导入 是复制的过程
    save 和 export区别:
    1)save 保存镜像所有的信息-包含历史
    2)export 只导出当前的信息
[root@wxtest1607 lixr]# docker history 880fc96a6bb6
IMAGE               CREATED             CREATED BY          SIZE                COMMENT
880fc96a6bb6        12 minutes ago                          971.9 MB            Imported from -
[root@wxtest1607 lixr]# docker history 90457edaf6ff
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
90457edaf6ff        8 hours ago         /bin/bash                                       434.4 MB            
<missing>           23 hours ago        /bin/bash                                       406.5 MB            
<missing>           7 weeks ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 
<missing>           7 weeks ago         /bin/sh -c #(nop) LABEL license=GPLv2           0 B                 
<missing>           7 weeks ago         /bin/sh -c #(nop) LABEL vendor=CentOS           0 B                 
<missing>           7 weeks ago         /bin/sh -c #(nop) LABEL name=CentOS Base Imag   0 B                 
<missing>           7 weeks ago         /bin/sh -c #(nop) ADD file:b3bdbca0669a03490e   194.6 MB            
<missing>           7 weeks ago         /bin/sh -c #(nop) MAINTAINER The CentOS Proje   0 B  


作者:灼灼2015
链接:https://www.jianshu.com/p/8408e06b7273
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/liwenxia626/article/details/80831049