本文主要以CentOS为例说明安装过程:

CentOS

在 CentOS-7中Docker的相关包已经是默认提供了的。在 CentOS-6中由EPEL仓库提供。请注意两种版本的安装方式是不同的。如果你需要最新的版本,你应该使用最新的二进制文件在内核3.8及以上进行编译安装。

Docker是工作在CentOS6及以上版本。其他的版本或许因为EL6二进制编译分发获得,但是他们是没有经过测试的。

请注意由于当前Docker的限制,Docker只能运行在64位的架构上。

为了运行Docker你需要CentOS6或者更高版本,它的内核必须是2.6.32-431或者更高版本,因为它有Docker需要的特定补丁。

CentOS 7 下安装Docker

因为Docker一个包含在了默认的 CentOS-Extras仓库,安装使用下面的命令就可以了

$ sudo yum install docker

手动安装最新版本

虽然使用包安装是Docker推荐的安装方式,但是这个包有可能不是最新的版本。如果你需要最新版本的,你可以使用二进制编译安装

当使用不带包安装二进制的时候,你可能要用systemd整合Docker。因为这样只是简单的安装了2个单元文件(service 和 socket),安装地方 /etc/systemd/system github 仓库

FirewallD

CentOS-7 引入了 firewalld。大致可以理解为iptables的封装,这是可能和Docker引起冲突的。

当firewalld启动或者重启的时候会移除DOCKER的iptables链,导致了Docker不能正常的工作。

当使用systemd时,firewalld 必须在Docker启动之前启动,但是如果你启动或者重启firewalld 在Docker启动之后,你需要重启Docker的守护进程。

CentOS-6 安装Docker

请注意这部分安装是针对CentOS-6d1,安装包在 Extra Packages for Enterprise Linux (EPEL)中。它是社区版本。

首先你必须确保你有 EPEL repository 仓库并且可用。 请访问 安装 EPEL

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

在EPEL中已经提供了Docker的安装包docker-io。

如果你安装过没有发布的docker包,那可能会和docker-io引起冲突。最是发现的bug报告。为了安装docker-io,请先移除docker。

然后接下来安装

$ sudo yum install docker-io

使用Docker

一旦Docker安装完成,你需要以守护进程启动它。

$ sudo service docker start

如果我们想开机就启动Docker,添加如下命令:

$ sudo chkconfig docker on

好了现在我们来验证一下Docker可以正常的使用了。首先我们需要获取一个最新的centos镜像。

$ sudo docker pull centos

下一步,我们将确保我们可以看见运行的镜像:

$ sudo docker images centos

它会输出类似下面的结果:

$ sudo docker images centos
REPOSITORY      TAG             IMAGE ID          CREATED             VIRTUAL SIZE
centos          latest          0b443ba03958      2 hours ago         297.6 MB

使用镜像运行一个简单的shell脚本:

$ sudo docker run -i -t centos /bin/bash

如果一切正常,你会得到一个简单的bash提示符。输入exit继续。

Dockerfiles

CentOS提供了大量的Dockerfile模板,为了方便你熟悉docker的使用。模板都放在GitHub上https://github.com/CentOS/CentOS-Dockerfiles

一切ok!您可以继续使用Docker 户指南或自己探索创建自己的的镜像。

问题?

如果您有任何问题 - 请直接报告给我们CentOS bug跟踪

参考文档