2. Docker安装
1). Docker官网
docker官网:http://www.docker.com
docker hub官网:https://hub.docker.com
2). docker三要素
CentOS Docker安装
- Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境;
- Docker实质上是在已经运行的Linux下制造一个隔离的文件环境,因此它执行的效率几乎等同于所部署的Linux主机;
- Docker必须不是在Linux呢内核的系统上;
[1].镜像
Docker镜像是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。镜像相当于一个root文件系统。docker镜像文件类似于Java的类模板,而docker容器实例类似于Java中new出来的实例对象;
[2].容器
- 从面向角度来看:
Docker利用容器独立运行一个或一组应用,应用程序或服务运行在容器里面,容器类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。每个容器都是互相隔离的、保证安全的平台。
- 从镜像容器角度来看:
可以将容器看作是一个简易版的Linux环境(包括:root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序;
[3].仓库
仓库是集中存放镜像文件的场所,国内的公开仓库包括阿里云、网易云等;
3). docker平台入门图解

docker工作原理:docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,通过Socket连接客户端,从客户端进行访问,守护进程从客户端接受命令并管理运行在主机上的容器。
4). Docker平台架构图解
Docker是一个C/S模式的架构,后端是一个松耦合架构,众多架构各司其职;
Docker运行的基本流程:
- 用户使用Docker Client与Docker Daemon建立通信,发送请求给后者;
- Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server功能使其可以接受Docker Client的请求;
- Docker Engine执行Docker内部的一系列工作,每一项工作都是以Job形式存在;
- Job运行过程中,当需要容器镜像时,从Docker Registry中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储;
- 当需要为Docker创建网络环境时,通过网络管理驱动Network Driver创建并配置Docker容器网络环境;
- 当需要限制Docker容器运行资源或执行用户指令等操作时,通过Exec driver来完成;
- libcontainer是一项独立的容器管理包,Network driver及Exec driver都是通过libcontainer来实现具体对容器进行的操作;

5). Docker安装
- 确定操作系统的版本:cat /etc/redhat-release - 卸载旧版本: yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine - yum安装gcc相关配置: yum -y install gcc yum -y install gcc-c++ - 安装需要的软件包: yum -y install yum-utils yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (设置stable镜像仓库) - 更新yum软件包索引: yum makecache fast - 安装DOCKER ENGINE: yum -y install docker-ce \ docker-ce-cli \ containerd.io - 启动DOCKER: systemctl start docker - 测试: docker version docker run hello-word

- 卸载: systemctl stop docker yum remove docker-ce \ docker-ce-cli \ containerd.io rm -rf /var/lib/docker rm -rf /var/lib/containerd
6). 阿里云镜像加速
- 地址:https://promotion.aliyun.com/ntms/act/kubernetes.html
- 注册属于自己的阿里云账户(可复用淘宝账号)
- 获得加速器地址连接
弹性计算 - 容器镜像服务 - 镜像工具 - 镜像加速器 - 加速器地址
- 粘贴脚本执行
修改配置文件/etc/docker/daemon.json
7). 底层原理
[1]. 为什么Docker会比VM虚拟机快?
- docker有着比虚拟机更少的抽象层
由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此,在CPU、内存利用率上docker有明显优势;
- docker利用的是宿主机的内核,而不需要加载操作系统OS内核
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,进而直接避免引寻、加载操作系统内核返回等比较费时费资源的过程;当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的,而docker可以直接利用宿主机的操作系统,省略了返回过程,因此新建一个docker容器只需要几秒钟;
浙公网安备 33010602011771号