RedHat6.8离线安装docker、docker-compose

举报
龙腾多多 发表于 2019/01/08 20:54:27 2019/01/08
【摘要】 一、引言 最近有个项目需求在内网环境的RedHat6.8服务器上部署,因不能联网,就需要离线安装docker、docker-compose 。在可联网使用yum工具安装是非常方便,不过离线安装的话也可以使用rpm来完成。二、下载离线安装需要docker、docker-compose安装包以及其依赖包 在docker官网查看对RedHat6.8兼容性较好的版本为Dock...

一、引言

       最近有个项目需求在内网环境的RedHat6.8服务器上部署,因不能联网,就需要离线安装docker、docker-compose 。在可联网使用yum工具安装是非常方便,不过离线安装的话也可以使用rpm来完成

二、下载离线安装需要docker、docker-compose安装包以及其依赖包

       在docker官网查看对RedHat6.8兼容性较好的版本为Docker version 1.7.1,再查 Docker Compose Github Docs,发现docker-compose 1.5.2 版本是兼容Docker 1.7.1 的,不然安装高版本的docker-compose后当运行docker-compose build的时候,就会提示我们的Dcoker版本太低要求升级Docker。然后下载相关的安装包以及依赖包:6个docker安装依赖包为lxc-libs-1.0.9-1.el6.x86_64.rpm、lxc-1.0.9-1.el6.x86_64.rpm、lua-lxc-1.0.9-1.el6.x86_64.rpm、lua-filesystem-1.4.2-1.el6.x86_64.rpm、lua-alt-getopt-0.7.0-1.el6.noarch.rpm、libcgroup-0.40.rc1-12.el6.x86_64.rpm,docker安装包docker-io-1.7.1-2.el6.x86_64.rpm,docker-compose 1.5.2二进制文件docker-compose-Linux-x86_64。

三、依次安装需要docker依赖包,以及docker

       安装命令rpm -ivh xxx,6个docker依赖包安装顺序为1、lua-filesystem-1.4.2-1.el6.x86_64.rpm,2、lua-alt-getopt-0.7.0-1.el6.noarch.rpm ,3、lxc-libs-1.0.9-1.el6.x86_64.rpm,4、lua-lxc-1.0.9-1.el6.x86_64.rpm,5、lxc-1.0.9-1.el6.x86_64.rpm,6、libcgroup-0.40.rc1-12.el6.x86_64.rpm;最后安装docker:rpm -ivh docker-io-1.7.1-2.el6.x86_64.rpm,验证安装结果:docker --version 出来“Docker version 1.7.1, build 786b29d/1.7.1”即安装完成。安装完成后,需要启动Docker守护进程:service docker start;最后,可选的操作(但建议启用),让Docker在服务器系统启动时启动:chkconfig docker on。

四、安装docker-compose

    重命名文件:cp docker-compose-Linux-x86_64 docker-compose;赋予可执行权限:chmod +x docker-compose;移动到可执行程序目录mv docker-compose /usr/local/bin/docker-compose,验证安装结果:docker-compose --version 出来“docker-compose version 1.5.2, build 7240ff3”即安装完成。

五、部署脚本

       为了方便部署多台,写成批量部署脚本,与所有下载文件放同一目录即可,运行脚本需先赋予可执行权限chmod +x docker-setup。所有安装文件和脚本在附件中docker.rar中。

六、Docker导入导出镜像

       因内网环境,无法pull镜像,这边就需要在可拉取镜像的机器上把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。         6.1、导出 export - 导入 import

           格式:docker export CONTAINER(容器)

           使用 docker ps -a 查看本机已有的容器,如:

           image.png

           使用容器 inspiring_almeida,要将这个容器保存为一个文件redis-export.taropy

           导出命令:docker export inspiring_almeida > /home/redis-export.tar,导出完成后,复制文件到内网机器,就可以使用 import 导入了:

           导入命令:docker import - /home/redis-export.tar

      6.2、保存save - 加载 load

           格式:docker save IMAGE(镜像)

           使用docker images查看本机已有的镜像(也可以使用 docker commit <CONTAIN-ID> <IMAGE-NAME>命令把一个正在运行的容器保存为镜      像),如:

           image.png

            这里有个基础镜像:redis:4.0,将这个镜像保存为一个文件myredis-save.tar,

            保存命令:docker save 969e92fbf946 > /home/myredis-save.tar,没有任何warn信息就表示保存OK,969e92fbf946 是镜像ID。

            复制文件到内网机器,就可以在任何装 docker 的地方加载刚保存的镜像了

            加载命令:docker load < /home/myredis-save.tar;附注:命令 < 记得别输错,输错会破坏文件,需要先删除文件后再复制文件重新执行。

       6.3.导出 export 与 保存 save 的区别,建议使用save方式,较不易出错

             (1).export导出的镜像文件大小 比 save保存的镜像小

             (2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)

             注:导入加载进来觉得不合适可以使用 docker rm 容器ID 、 docker rmi 镜像ID 来删掉。

             移除所有的容器和镜像(大清除)命令:docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)   

    附件下载

  • docker.rar 12.52M 下载次数:44
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。