docker离线安装
来源:互联网 发布:mysql攻击全攻略 编辑:程序博客网 时间:2024/06/16 11:36
背景
最近在做私有化部署项目,项目的整体方案基于docker。考虑到客户的运行环境可能无法连接到公网,因此需要制作docker的离线安装。整个离线安装分为三个部分:1)准备docker离线安装包,2)docker离线源配置,3)离线安装docker
准备docker离线安装包
目前只考虑Linux及其发行版的服务器。docker对于机器和操作系统的要求:
- 内核版本3.10及其以上
- 操作系统位数为64位
- CPU架构为x86_64或amd64(目前也有别的支持)
- 内核开启并支持cgroup和命名空间
简单点说来,常用的 CentOS 7及其以上,Ubuntu 14及其以上,Fedora 24及其以上,Debian 8及其以上,还有 Raspbian 等。这个部分具体可以参考[1]。这个是docker官方的在线安装脚本,本文中的内容主要也是参考这个脚本。
对于不同的操作系统,不同的架构,需要的docker安装包不同,所以要分开处理。目前主流的包管理工具是 apt-get 和 yum,这两者也分别对应到Ubuntu\Debian和CentOS\Fedora系列操作系统。不管是哪种包管理工具,基本思路都是
- 下载docker安装包及其依赖
- 对下载下来的安装包制作本地源
- 准备本地源配置文件
对于 apt-get 来说,可以执行以下脚本,该脚本抽取自参考链接[1]。对于流程的解释可以参考链接[2]
#!/bin/shlsb_dist="ubuntu"dist_version="xenial" # 14-trusty 16-xenial 17-zestyDOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce"DOWNLOAD_DIR="/home/work/docker-packages/$lsb_dist-$dist_version"set -eapt_repo="deb [arch=$(dpkg --print-architecture)] $DOWNLOAD_URL/linux/$lsb_dist $dist_version stable"if [ ! -x "$DOWNLOAD_DIR" ]; then mkdir -p "$DOWNLOAD_DIR"fiapt-get update -qq >/dev/nullapt-get install -y -qq apt-transport-https ca-certificates curl dpkg-dev > /dev/nullcurl -fsSL "$DOWNLOAD_URL/linux/$lsb_dist/gpg" | apt-key add - > /dev/nullecho "$apt_repo" > /etc/apt/sources.list.d/docker.listif [ "$lsb_dist" = "debian" ] && [ "$dist_version" = "wheezy" ]; then sed -i "/deb-src.*download\.docker/d" /etc/apt/sources.list.d/docker-ce.listfi# 只下载docker和依赖的安装包apt-get update -qq >/dev/nullapt-get --download-only -o Dir::Cache="./" -o Dir::Cache::archives=$DOWNLOAD_DIR install -y --no-install-recommends docker-ce > /dev/null# 为安装包建立索引,方便后续加载为本地源安装touch $DOWNLOAD_DIR/Packages.gzdpkg-scanpackages $DOWNLOAD_DIR /dev/null | gzip > $DOWNLOAD_DIR/Packages.gz
我在制作的时候,对于生成的Packages.gz,调整里面每一个软件的 Filename 项,只留下软件名,不保留前面的目录路径。具体可以使用sed命令。
对于 yum 来说,可以执行以下脚本,该脚本也抽取自参考链接[1]。对于流程的解释可以参考链接[3]
#!/bin/shlsb_dist="centos"dist_version="7"DOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce"DOWNLOAD_DIR="/home/work/docker-packages/$lsb_dist-$dist_version"set -eyum_repo="$DOWNLOAD_URL/linux/$lsb_dist/docker-ce.repo"if [ ! -x "$DOWNLOAD_DIR" ]; then mkdir -p "$DOWNLOAD_DIR"fi# 只下载docker和依赖的安装包yum-config-manager --add-repo $yum_repoyum makecacheyum install --downloadonly --downloaddir=$DOWNLOAD_DIR docker-ce# 为安装包建立索引,方便后续加载为本地源安装createrepo $DOWNLOAD_DIR
准备docker离线源配置
将刚刚准备好的安装包内容(\$lsb_dist-$dist_version
这个目录下)拷贝到目标机器上,比如统一放到/home/work/docker-packages目录下。基于这个路径:
对于 apt-get 系的离线源配置文件为 docker-ce.list,内容如下
deb [trusted=yes] file:/home/work/docker-packages ./
对于 yum 系的离线源配置文件为 docker-ce.repo,内容如下
[Local_docker_yum]name=Local Docker Yum Repositorybaseurl=file:///home/work/docker-packages/enabled=1gpgcheck=0
离线安装docker
对于 apt-get 将离线源配置文件 docker-ce.list 拷贝到 /etc/apt/sources.list.d 目录下。如果电脑不能联网,先将 /etc/apt/sources.list 文件重命名;然后执行apt-get update;再把刚刚重命名的 /etc/apt/sources.list 改回来。如果不这么改的话,在apt-get update的时候可能联网失败而无法完成更新。
最后执行 apt-get install docker-ce
对于 yum 将离线源配置文件 docker-ce.repo 拷贝到 /etc/yum.repos.d/ 目录下。如果电脑不能联网,先将 /etc/yum.repos.d/ 目录下其他配置文件重命名;然后执行 yum makecache;最后再把刚刚重命名的文件改回来。这么做的理由同上。
最后执行 yum install docker-ce
参考链接:
[1]https://get.docker.com/
[2]http://blog.csdn.net/candcplusplus/article/details/52156324
[3]http://www.cnblogs.com/zzyyxxjc/p/4346975.html
- centos7离线安装Docker
- docker离线安装
- centos7离线安装docker
- docker离线安装
- redhat6.5离线安装docker
- Redhat7.1 离线安装docker
- CentOS7离线安装docker问题解决
- Docker离线安装部署文档
- CentOS-6.5离线安装docker-1.7教程
- Docker离线安装——centos7
- ubuntu14.04中离线安装docker
- Centos 环境Docker离线安装方式
- Docker基础系列(一)Centos6.4离线安装docker
- [Docker] CentOS 7 离线安装 Docker 1.12.6
- redhat 6.5 离线安装docker (rpm包安装)
- redhat 6.5 离线安装docker (rpm包安装)
- ubuntu server 16.04离线安装docker 1.12.3的探索
- Docker离线安装以及本地yum源构建
- Qt4.8.6详细安装步骤
- iOS 安装cocoapods ruby 环境问题
- STM32系统学习——RCC(使用HSE/HSI配置时钟)
- bootstrap-table-demo说明
- Shiro浅显理解
- docker离线安装
- Java 程序连接 Informix 数据库方法实例介绍
- 关于input为color时绑定对应内容改变相应颜色
- scikit-learn常用的一些函数及在实战中的用法
- hive left join 条件on 和 where 的放置
- 五十种编程语言简介(1)
- (译) 在IOS中实现导入&导出文档
- js--打卡--11.27 toString方法的改造。
- Codeblocks-使用错误整理(1)cannot open output file