Docker安装教程
2015年01月12日


一、CentOS安装Docker篇


Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本。



超简单CentOS7 配置阿里云yum源

1、打开centos的yum文件夹

输入命令cd  /etc/yum.repos.d/


2、用wget下载repo文件

输入命令wget  http://mirrors.aliyun.com/repo/Centos-7.repo

如果wget命令不生效,说明还没有安装wget工具,输入yum -y install wget 回车进行安装。

当前目录是/etc/yum.repos.d/,刚刚下载的Centos-7.repo也在这个目录上


3、备份系统原来的repo文件

mv  CentOS-Base.repo CentOS-Base.repo.bak

即是重命名 CentOS-Base.repo -> CentOS-Base.repo.bak


4、替换系统原理的repo文件

mv Centos-7.repo CentOS-Base.repo

即是重命名 Centos-7.repo -> CentOS-Base.repo


5、执行yum源更新命令

yum clean all

yum makecache

yum update

依次执行上述三条命令即配置完毕。



yum方式安装Docker

1、移除旧的版本:

sudo yum remove docker \

                  docker-client \

                  docker-client-latest \

                  docker-common \

                  docker-latest \

                  docker-latest-logrotate \

                  docker-logrotate \

                  docker-selinux \

                  docker-engine-selinux \

                  docker-engine


2、安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2


3、添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


4、更新 yum 缓存:

sudo yum makecache fast


5、安装 Docker-ce:

sudo yum -y install docker-ce


6、启动 Docker 后台服务

sudo systemctl start docker


7、测试运行 hello-world

docker run hello-world


到此,Docker 在 CentOS 系统的安装完成。


删除 Docker CE

执行以下命令来删除 Docker CE:

$ sudo yum remove docker-ce

$ sudo rm -rf /var/lib/docker


另外,可以使用脚本自动安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:

$ curl -fsSL get.docker.com -o get-docker.sh

$ sudo sh get-docker.sh --mirror Aliyun

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。


启动 Docker CE

$ sudo systemctl enable docker

$ sudo systemctl start docker


建立 docker 用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。


建立 docker 组:

$ sudo groupadd docker


将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER


退出当前终端并重新登录,进行如下测试。

$ docker run hello-world


镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,强烈建议安装 Docker 之后配置 国内镜像加速


Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

Docker 中国 registry mirror: https://registry.docker-cn.com

中国科学技术大学:https://docker.mirrors.ustc.edu.cn

七牛云加速器: https://reg-mirror.qiniu.com/

网易云:http://hub-mirror.c.163.com

阿里云:

https://1234abcd.mirror.aliyuncs.com/

https://ckq4qobq.mirror.aliyuncs.com/



当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。

也可以单次设置拉取地址,例如使用docker中国镜像:

docker pull registry.docker-cn.com/library/ubuntu:16.04


Daocloud镜像配置,官方脚本一键配置:

参见:https://www.daocloud.io/mirror#accelerator-doc



手动配置,我们以 Docker 官方加速器 https://registry.docker-cn.com 为例进行介绍。


Ubuntu 14.04、Debian 7 Wheezy (对于使用 upstart 的系统而言)

编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

重新启动服务。

$ sudo service docker restart


Ubuntu 16.04+、Debian 8+、CentOS 7 (对于使用 systemd 的系统)

请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload

$ sudo systemctl restart docker

注意:如果您之前查看旧教程,修改了 docker.service 文件内容,请去掉您添加的内容(--registry-mirror=https://registry.docker-cn.com),这里不再赘述。


配置加速器之后,可以手动检查加速器配置是否生效,在命令行执行 

$ docker info

或者执行一次:

$ docker search ubuntu


添加内核参数

默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

WARNING: bridge-nf-call-iptables is disabled

WARNING: bridge-nf-call-ip6tables is disabled


请添加内核配置参数以启用这些功能。

more /etc/sysctl.conf


$ sudo tee -a /etc/sysctl.conf <<-EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

然后重新加载 sysctl.conf 即可

$ sudo sysctl -p