一、Dcoker三个基本概念
镜像(Image)
Docker 镜像就是一个只读的模板。
例如:一个镜像可以包含一个完整的 CentOS操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。
镜像可以用来创建 Docker 容器。
Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
容器(Container)
Docker 利用容器来运行应用。
容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。
仓库(Repository)
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问。
当然,用户也可以在本地网络内创建一个私有仓库。
当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
*注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。
二、Dcoker安装(CentOS7)
1、前置条件
需要内核版本高于3.10的64位操作系统:
[root@localhost ~]# uname -r
3.10.0-693.el7.x86_64
检查Device Mapper,使用Device Mapper作为Docker的存储驱动,为Docker提供存储能力:
[root@localhost ~]# ls -l /sys/class/misc/device-mapper
lrwxrwxrwx. 1 root root 0 10月 27 06:35 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
也可以在/proc/devices文件中检查是否有device-mapper条目:
[root@localhost ~]# sudo grep device-mapper /proc/devices
253 device-mapper
如果未检测到Device Mapper,可以试着安装device-mapper软件包:
[root@localhost ~]# sudo yum install -y device-mapper
安装完成后,需要加载dm_mod内核模块:
[root@localhost ~]# sudo modprobe dm_mod
模块加载完毕后,就可以找到/sys/class/misc/device-mapper条目了。
2、更新yum
Yum 是 CentOS 的包管理工具,类似于 apt,我们还是以 root 用户登录系统,然后更新 yum 源:
yum update
3、添加仓库
在/etc/yum.repos.d/ghostcloud.repo 中加入
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
4、安装
CentOS7 系统 CentOS-Extras 库中已带 Docker,可以直接安装:
sudo yum install docker
5、启动Docker,并设置为开机启动
[root@localhost ~]# service docker start
[root@localhost ~]# chkconfig docker on
注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
[root@localhost ~]# systemctl start docker.service
[root@localhost ~]# systemctl enable docker.service
6、测试安装是否成功
[root@localhost ~]# docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Sep 21 22:33:52 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.centos.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Sep 21 22:33:52 2017
OS/Arch: linux/amd64
三、Dcoker卸载(CentOS7)
1、查询安装过得软件包
[root@localhost ~]# yum list installed | grep docker
docker.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
docker-client.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
docker-common.x86_64 2:1.12.6-55.gitc4618fb.el7.centos
2、删除安装的软件包
yum -y remove docker.x86_64
3、删除镜像/容器
rm -rf /var/lib/docker