1 前提说明
- 目前,CentOS仅发行版中的内核支持Docker。
- Docker运行在CentOS7上,要求系统为64位,系统内核版本是3.10以上。
- Docker运行在CentOS6.5或更高版本的CentOS上,要求系统为64位,系统内核版本是2.6.32-431或者更高版本。
- 查看内核:
uname -r
- 查看已安装的CentOS的版本信息:
cat /etc/redhat-release
2 Docker的组成
2.1 Docker的架构图
2.2 镜像(image)
- Docker的镜像image就是一个只读的模板。镜像可以用来创建Docker的容器,一个镜像可以创建很多容器。
2.3 容器(container)
- 镜像(image)和容器(container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
2.4 仓库(repository)
- 仓库repository是集中存放镜像文件的场所。
- 仓库repository和仓库注册服务器registry是由区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签tag。
- 仓库分为公开仓库和私有仓库两种形式。
- 最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。
- 国内的公开仓库包括阿里云、网易云等。
2.5 总结
- Docker本身是一个容器运行载体或者称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器。image文件可以看做是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。
- image文件生成的容器实例,本身也是一个文件,称为镜像文件。
- 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。
- 至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下来就可以了。
3 Docker的安装
本次安装是在CentOS7版本上。
3.1 yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
3.2 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.3 安装所需要的软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3.4 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.5 更新yum软件包索引
yum makecache fast
3.6 安装Docker
yum -y install docker-ce
3.7 启动Docker
systemctl start docker
3.8 验证docker是否安装成功
docker version
4 卸载Docker
systemctl stop docke
yum -y remove docker-ce
rm -rf /var/lib/docker
5 配置阿里云镜像加速
5.1 获取阿里云镜像加速地址
5.2 CentOS7.x下的Docker配置镜像加速
5.2.1 创建/etc/docker目录
mkdir -pv /etc/docker
5.2.2 在/etc/docker目录下创建daemon.json文件来配置阿里云镜像加速,并将以下内容复制进去
{
"registry-mirrors": ["自己的阿里云镜像加速地址"],
"live-restore": true,
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
live-restore:Docker重启之后,容器不退出。 log-driver和log-opts:用来限制Docker容器的日志的大小。 max-size=500m,意味着一个容器日志大小上限是500M。 max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。
5.2.3 重启Docker服务
systemctl daemon-reload
systemctl restart docker
6 通过脚本安装
6.1 yum更新
yum -y update
6.2 脚本安装
curl -sSL https://get.docker.com/ | sh
6.3 启动Docker
systemctl start docker