前言
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
Docker 官方建议要 CentOS7.0 及以上系统版本,本文介绍 Docker CE 在CentOS下的安装使用。
前提条件
内核
Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行。但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Windows等平台。目前Docker支持以下版本CentOS:
- CentOS 7(64位)
- CentOS 6.5(64位)及以后
在运行CentOS 6.5及以后版本时,需要内核版本>=2.6.32-431,因为这些内核包含了运行Docker的一些特定修改。
$ uname -r
2.6.32-431.17.1.el6.x86_64
注:网上很多教程说CentOS6.5必须要升级内核到3.10才能使用docker,其实是【可选】升级,但最好升级。
Device Mapper
Docker默认使用AUFS作为存储驱动,但是AUFS并没有被包括在Linux的主线内核中。CentOS中可以使用Device Mapper作为存储驱动,这是在2.6.9内核版本引入的新功能。我们需要先确认是否启用该功能:
$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 May 1 20:55 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
如果没有检测到Device Mapper,需要安装device-mapper软件包:
$ sudo yum install -y device-mapper
然后重新加载dm_mod内核模块:
$ sudo modprobe dm_mod
安装
CentOS 7
准备
- CentOS7能上外网
- yum -y install gcc
- yum -y install gcc-c++
- 卸载旧版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
如果 yum 报告未安装任何这些软件包,这表示情况正常。
安装
- 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置stable镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum软件包索引
yum makecache fast
如果这是自添加 Docker 镜像仓库以来您首次刷新软件包索引,系统将提示您接受 GPG 密钥,并且将显示此密钥的指纹。验证指纹是否正确,并且在正确的情况下接受此密钥。指纹应匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35。
- 安装docker
1、安装指定版本:
yum list docker-ce.x86_64 --showduplicates | sort -r #从高到低列出Docker-ce的版本
该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。
例如:指定版本(docker-ce-18.09.9)进行安装:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
# 例如:
yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io
2、安装最新版本:
yum -y install docker-ce
- 启动docker
执行以下命令启动docker:
systemctl start docker
- 测试docker