@TOC
一款产品的出现会有两套甚至多套环境,比如生产环境,测试环境等等。
前言
前提:学习 Docker 的前提是你要对 Linux 有一定了解,常用指令熟练应用。
1、Docker概述
1-1、什么是Docker?
Docker 是一个开源的应用容器引擎,是一种新兴的虚拟化技术,跟传统的虚拟化方式相比具有众多的优势。能够一定程度上的代替传统虚拟机,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
1-2、docker中的基本概念
镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 采用客户端-服务器模式(C/S模式),通过使用远程API来管理和控制创建Docker容器
1-3、docker 有什么优势?
首先我们来看一下Docker 和 VM虚拟机的对比表:
通过对比,不难看出Docker不论是在启动时间还是在运行效率或是其他方面都远远强于VM虚拟机。
docker 的基本结构:
- 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
- 响应式部署和扩展:Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。除此之外他还说可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
- 在同一硬件上运行更多工作负载:Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
2、Centos 7下安装docker
进入到root模式之后,首先检查虚拟机中是否已经安装了Docker
docker version
若没有没查询到版本信息说明虚拟机中没有安装Docker,反之则执行下面的命令(卸载之前安装的Docker):
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装所需的软件包:yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。yum-config-manager 我们是用阿里云镜像,下载速度会快非常非常多!
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
sudo yum install docker-ce docker-ce-cli containerd.io //这里默认下载最新版本的docker
如果要安装指定版本的docker则选择使用下面的命令:
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
至此docker的安装已经完成!
3、docker 运行原理
3-1、运行流程:
我们来看一下docker运行流程:
3-2、运行原理
Docker 是 客户端-服务器模式(C/S模式),Docker-Client 可以通过Api调用Docker-Server,Docker-Server接受到Docker-Client的指令之后就会执行该指令。
总结
树苗如果因为怕痛而拒绝修剪,那就永远不会成材。