CentOS7安装Docker
Docker简介
Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低!
Docker 从 17.03 版本之后分为了社区版和企业版,对于个人开发者而言,我们用社区版就可以了。
Docker是虚拟化技术的重要一环,作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。
使用 Docker,可以让我们开发部署应用更加方便快捷。不需要再一步一步去下载软件包然后配置了,直接通过仓库拉取镜像生成本地容器的方式就实现了安装。
Docker架构
Docker 包括三个基本概念:
- 镜像(Image):Docker 镜像就相当于是一个 root 文件系统。
- 容器(Container):镜像和容器的关系,就像是面向对象程序设计中的类和实例一样。镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库看管着一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。
举个通俗易懂的例子,今年的王者荣耀“五五开黑节“”返场了孙悟空的至尊宝皮肤。
- 至尊宝皮肤本身就是一个镜像,官方只需要精心打磨一个皮肤(即一个镜像)后拿出来可以卖给无数的人。
- 那么皮肤到哪里获取呢?我们需要到王者荣耀商城里面进行购买,王者荣耀商城就是一个仓库,必须通过这个仓库进行获取。
- 我们充值了888点券,购买了至尊宝的皮肤,我们手中的皮肤就是一个容器。如果100个人购买了这个皮肤,相当于官方的一份镜像在100个不同的机器上都生成了对应的容器。
- 官方的皮肤本身是个类,而我们购买的皮肤是个对象,这就是镜像和容器的关系。整个购买流程就相当于我们去仓库里拉取镜像生成了一个容器。
如果有兴趣,大家也可以去查看 GitHub Docker源码。看源码能更深入地理解 Docker的核心原理。
Docker安装流程
这里我使用的是 root 用户进行安装,输入的命令不会出现权限问题,如果是其他用户,请记得在命令前面添加 sudo。
Docker官方要求的 CentOS系统的内核是 3.10及以上,而 CentOS7以上系统内核都是 3.10及以上,相当于说 Docker的安装需要 CentOS7以上系统。
第一步,查看系统内核版本
uname -r
可以看到,我的 CentOS7内核版本是 3.10,满足要求。
第二步,更新 yum包至最新版本(不更新可能会无法安装)
yum update
第三步,卸载旧的 Docker 版本。(如果是第一次安装 Docker可以跳过此步,如果之前装过 Docker一定要卸载!)
yum remove docker docker-common docker-selinux docker-engine
第四步,安装所需软件包。( yum-util 提供 yum-config-manager 功能,后面是 devicemapper 驱动依赖)
yum install -y yum-utils device-mapper-persistent-data lvm2
我的CentOS系统中已经装了这些软件了,所以 Nothing to do,正常的话会进行下载安装。
第五步,给 yum设置 Docker源。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
第六步,查看仓库中的 Docker版本
yum list docker-ce --showduplicates | sort -r
第七步,在列出的 Docker版本中选择一个进行安装。(两种方式)
# 1.自动安装最新稳定版
yum install docker-ce
# 2.指定版本安装,这里指定的是18.06.1
yum install docker-ce-18.06.1.ce
安装 docker-ce的过程会弹出下载提示,输入 y,回车,等待下载即可
出现 complete!则证明安装完成了。
查看Docker
我们先启动 Docker
systemctl start docker
启动时没有提示,命令行自动跳转就启动完成了。
接下来,我们验证一下 Docker启动是否成功。
docker version
看到 Client 和 Server 两部分,就证明 Docker启动成功了。
我们来运行 hello-world 映像,相当于编程语言中最经典的“Hello,World”。
docker run hello-world
关闭和重启 Docke的命令
# 关闭
systemctl stop docker
# 重启
systemctl restart docker
Docker已经安装成功也能正常启动,可以去学习 Docker 的使用方法,创建容器做其他的操作了。