转自: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版本
基本思路:
- 在可以连接外网的机器(未安装过docker,同时跟局域网要安装docker的机器系统版本一致)通过yum命令将rpm以及相关的依赖下载完成
- 将下载完成的rpm包,拷贝到局域网机器上面
- 构建本地yum源
- 使用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源
- 构建本地源之前,需要在本地安装createrepo,用于构建本地源,方法,同docker包下载,通过yum install –downloadonly下载好,copy到该机器上面,通过rpm -ivh进行安装,createrepo关联包很少,不详细描述。
- 删除/etc/yum.repo.d目录下文件,创建新的*.repo文件,如:docker.repo,进行配置,如图:
- createrepo -d /home/yum-custom/设置本地源,执行成功后本地源就设置完成了
- 输入yum repolist看是否能看到自己构建的本地源
- 清除缓存,yum clean all
- 创建缓存,yum makecache
- 看本地源是否配置成功,通过yum list看是否输出了新的rpm包,如果能查询到,证明配置成功
安装docker
yum install docker,安装完成
之前已配置好基础镜像,其他地方也需要用到这些镜像时怎么办呢?
答案:镜像的导入和导出功能。
- 镜像的保存
[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
- 镜像的导入
当前缺一台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
- 容器的导出
[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 8月 24 18:37 tomcat80824.tar
-rw-r--r-- 1 root root 1005M 8月 24 17:42 tomcat8-apr.tar
b91d9ad83efa 是 镜像90457edaf6ff 启动后的容器。
镜像导出的文件比容器导出文件大哦。
- 容器的导入
[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)容器导入 是将当前容器 变成一个新的镜像
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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。