docker 介绍与安装

173 阅读7分钟

一、docker 介绍

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
开发人员利用 Docker 可以消除协作编码时 “在我的机器上可正常运作,而在你的机器上不能正常运作” 的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。

二、docker 优点

1、更快速的应用交付和部署

  传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker 化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

2、更便捷的升级和扩缩容

  随着微服务架构和 Docker 的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个 Docker 容器将变成一块 “积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

3、更简单的系统运维

  应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的 BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

4、更高效的利用系统资源

  Docker 是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的 Hypervisor 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的 CPU 和内存的利用率。

三、Docker 架构

  Docker 使用 C/S 架构,Client 通过接口与 Server 进程通信实现容器的构建,运行和发布,如图:

1、Docker Client (docker 客户端)

  Docker 命令行工具,用户通过 Docker Clients 与 Docker daemon 进行通信,利用命令行发送创建镜像、运行容器之类的请求。

2、Docker Host (docker 宿主机)

  安装了 Docker 程序,并运行了 Docker daemon 的主机。其中 Docker Host 包含如下三部分:

  2.1、Docker daemon (Docker 守护进程)

  运行在宿主机上,Docker 守护进程,用户通过 Docker client(Docker 命令) 与 Docker daemon 交互。

  2.2、Images (镜像)

  将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器。

  2.3、Containers (容器)

  Docker 的运行组件,启动一个镜像就是一个容器,容器与容器之间相互隔离,并且互不影响。

3、Registry (仓库服务注册器)

  经常会和仓库 (Repository) 混为一谈,实际上 Registry 上可以有多个仓库,每个仓库可以看成是一个用户, 一个用户的仓库放了多个镜像。仓库分为了公开仓库 (Public Repository) 和私有仓库(Private Repository),最大的公开仓库是官方的 Docker Hub,国内也有如阿里云、时速云等,可以给国内用户提供稳定快速的服务。用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

四、Docker VS VMware

  VM 是一个运行在宿主机之上的完整的操作系统,VM 运行自身操作系统会占用较多的 CPU、内存、硬盘资源。Docker 不同于 VM,只包含应用程序以及依赖库,基于 libcontainer 运行在宿主机上,并处于一个隔离的环境中,这使得 Docker 更加轻量高效,启动容器只需几秒钟之内完成。由于 Docker 轻量、资源占用少,使得 Docker 可以轻易的应用到构建标准化的应用中。

五、CentOS7 操作系统安装 Docker CE (社区版)

官方安装文档:docs.docker.com/install/lin…

1、查看操作系统版本是否是 CentOS7 及以上

bash
复制代码
cat /etc/redhat-release

2、查看 CentOS7 的内核版本,Docker 要求 CentOS7 系统必须为 64 位,且系统内核版本为 3.10 及以上

bash
复制代码
uname -r


可以看到 CentOS7 的操作系统为 x86_64(64 位),系统内核版本为 3.10.0

提示:以下步骤请以root用户运行指令,如果不是以 root 用户运行,请在指令的最前面加上sudo,表示以系统管理者 (root) 的身份执行指令

3、卸载旧版本 (如果之前没有安装过旧版本的 docker 可以跳过)

arduino
复制代码
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

4、安装 docker 所需的软件包

kotlin
复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2


5、设置 yum 源为阿里云 (由于国外网站访问速度慢)

arduino
复制代码
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、更新 yum 软件包索引

复制代码
yum makecache fast

7、安装 docker CE(社区版),Docker 提供了两个版本:社区版 (CE,免费) 和 企业版 (EE,收费)

复制代码
yum -y install docker-ce


8、启动 docker,并加入到开机启动

arduino
复制代码
//启动docker
systemctl start docker

//设置docker开机启动
systemctl enable docker

9、查看 docker 是否安装成功

复制代码
docker version


出现 Client 和 Service 两部分信息,则表示 docker 启动和安装都成功

10、设置阿里云镜像加速器 (外国网站下载镜像速度慢)

10.1、进入到阿里云官网,登录并点击右上角的控制台,进入到控制台页面

10.2、进入到控制台页面,在搜索框中输入 容器镜像服务并选择,进入到镜像仓库管理控制台

10.3、进入到控制台页面后,在搜索框中输入 容器镜像服务并选择,进入到镜像仓库管理控制台,在进入时,需要设置镜像仓库管理控制台的用户名和密码,查看文档请点击:阿里云镜像基本操作

10.4、进入到镜像仓库管理控制台后,点击左边镜像中心下拉选项中的镜像加速器,最后点击复制链接,复制加速器地址,查看文档请点击:阿里云官方镜像加速

10.5、编辑 / etc/docker/daemon.json 配置文件 (如果有 daemon.json 配置文件则编辑,没有则会自动新建)

bash
复制代码
vi /etc/docker/daemon.json

10.6、在 daemon.json 配置文件中,添加如下内容并保存:

json
复制代码
{
  "registry-mirrors": ["https://m0p0xxqj.mirror.aliyuncs.com"]
}

11、重新加载 daemon.json 配置文件 并 重启 docker 服务

arduino
复制代码
//重新加载daemon.json配置文件
systemctl daemon-reload

//重启服务器
systemctl restart docker

12、查看阿里云镜像加速器是否配置成功

复制代码
docker info

找到 Registry Mirrors,在其下方显示的就是我们配置的镜像加速器地址

到这,docker CE(社区版) 就安装成功了