# 0x00 安装热身linux
- 针对CE版本git
Docker 分为 CE 和 EE 版本, CE免费,EE收费,CE版以及可以知足咱们全部需求github
本文针对 CE 版本的安装进行说明docker
- 系统说明centos
本文以 CentOS 7为例进行安装, 不要使用 CentOS 7 的 Archived版 和 测试版,由于不支持bash
- 源说明服务器
CentOS 的扩展源 (centos-extras) 必须启用,默认也是启用的,可是若是你以前关闭过它,须要从新启用一下网络
建议使用overlay2存储引擎app
- 删除旧版本的Dockercurl
默认 yum 安装的 docker 或 docker-engine 版本好久,咱们先卸载掉
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
备注: /var/lib/docker/ 下面的 容器,镜像,网络,磁盘卷 会被保留
新的 docker 改成 docker-ce 也就是免费版的 docker
# 0x01 开始安装
有三种安装方式:
1. 经过设置网络源,而后yum安装,方便往后维护和升级 (推荐)
2. 下载RPM包手动安装和升级,若是没有网络这种方法很实用
3. 使用自动化脚本安装,适合在开发和测试环境
- 使用yum安装
开始安装以前须要设置一下 Docker 源,后面直接经过源安装和升级
1. 安装 yum-utils , yum-config-manager, device-mapper-persistent-data lvm2 (被 devicemapper存储引擎依赖)
$ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2. 设置官方 docker-ce.repo 源
$ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
2.5 下面几个可选步骤
默认是 stable版,若是先试试 nighty 或者 test 能够用下面的命令开启或关闭
启用 nightly版
$ sudo yum-config-manager --enable docker-ce-nightly
启用 test版
$ sudo yum-config-manager --enable docker-ce-test
禁用 nightly
$ sudo yum-config-manager --disable docker-ce-nightly
3. 开始安装
3.1 废话了那么多,这一步才是关键,默认安装的是最新的,或者使用后面的步骤安装指定的版本
sudo yum install docker-ce docker-ce-cli containerd.io
这里可能会提示 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 密钥是否匹配
若是和这里的同样,能够选择接受。注意最新的版本多是不稳定的
Docker 这样就安装好了,但还没启用,默认建立了一个 docker 组,但没有用户在这个组上
3.2 指定具体版本的docker安装
A. 可使用下面的命令,列出能够从源里安装的全部docker版本,而且高到低排序
$ yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
每一个人看到的列表可能不同,取决于你启用的库,和你CentOS 的具体版本
B. 选择具体的版本进行安装
选择方式就是用 - 进行衔接你要的版本号,看以下格式
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
好比这里我安装的是 18.09.5 版
$ sudo yum install docker-ce-18.09.5 docker-ce-cli-18.09.5 containerd.io
同样执行完只是安装了docker 还没启用,建立了暂时无用户的 docker 组
4. 启动docker
$ sudo systemctl start docker
5.验证客户端能正常使用,测试hello-world镜像
$ sudo docker run hello-world
这步会从 docker-hub (相似github) 上面拉去 hello-world镜像,而后经过这个镜像建立容器并运行
打印一个hello world就退出,也表明docker-cli能够用
- 使用RPM安装 (不推荐)
若是你的linux电脑没有网络(什么年代了?没网?),能够用下载RPM包放到CentOS上手动安装
1. 下载RPM包
而且想升级的话也须要从新到网上下载最新的安装包
下载网址 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
若是不知道怎么选,能够参考下载下面三个包
docker-ce-cli-18.09.5-3.el7.x86_64.rpm
docker-ce-18.09.5-3.el7.x86_64.rpm
containerd.io-1.2.5-3.1.el7.x86_64.rpm
若是喜欢折腾想试试 nighty 的只要把 URL 里的 stable 改为 nighty 就行
2. 安装RPM包
$ sudo yum install /path/to/package.rpm
执行完只是安装了docker 还没启用,建立了暂时没用户的 docker 组
3. 启动docker
$ sudo systemctl start docker
4. 验证客户端能正常使用,测试hello-world镜像
$ sudo docker run hello-world
这步会从 docker-hub (相似github) 上面拉去 hello-world镜像,而后经过这个镜像建立容器并运行
打印一个hello world就退出,也表明docker-cli能够用
5.升级
记住想升级就要回到第1步网上从新下载最新安装包,跟着步骤走,而后
$ sudo yum update /path/to/package.rpm
- 使用一键部署脚本安装
官方提供了一键部署脚本 get.docker.com 和 test.docker.com
建议使用 get 开头的,这种方式避免交互很适合新手,这是docker-install 的源码 docker-install
repository.
在生产环境中,使用这些脚本是不推荐的,你须要了解其中的风险( 说白了出事别找我 ),风险以下:
root
or sudo
privileges to run. Therefore, you should carefully examine and audit the scripts before running them.1. 脚本须要用 root身份运行,你认真最好审计一下代码,否则删库跑路都不知道了
2. 脚本会尝试探测你系统的版本,并改变相关的配置,此外无法加上自定义的安装参数,可能会致使配置支持性不好,甚至语言变成日语,让你看不懂。。。。
3. 脚本会无脑的把全部推荐和依赖全安装了,不通过你的确认,致使有大量的包,取决于你的系统配置
4. 脚本不给你选择具体哪一个版本,直接给你转最新的
5. 若是你已经安过docker了,你用脚本的话又安装一次的话,恭喜你,凉了,赶忙收拾一下那个啥吧
FBI Warning:
脚本运行以前检查一下代码,由于服务器上的脚本颇有多是给黑客替换的
看到这里仍然坚持要来一下的话,那就来吧
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh <output truncated>
若是想要用非root用户,须要执行下面的命令
sudo usermod -aG docker your-user
记得先退出,从新登录才会生效
- 卸载 Docker
到这里你的 docker 应该经过前面三种方式中的一种安装好了,你须要手动启动一下,使用 systemctl 或者 service 命令
有言在先,默认状况下非root是运行不了docker命令的,下面是卸载的方法
1. 中止docker
$ sudo systemctl stop docker
2. 卸载包
$ sudo yum remove docker-ce
3. 删除资源(容器 镜像 网络 卷映射)
$ sudo rm -rf /var/lib/docker