docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
我们一开始选择相对基础的docker,而不是一上来就K8S,主要是为了能够尽量学习到基础的相关知识,然后再学K8S就会比较得心应手。
Docker分成两个版本,分别是CE和EE:
Community Edition (CE) 简称社区版
Enterprise Edition (EE) 检查企业版
不用多说,我们肯定用社区版,接下来的后续文章我们都是采用CE版本。
docker架构
docker引擎是一个场景的CS架构,外层是CLI,中间是API层,最里面是核心组件,如下图所示:
docker的架构和实际使用可以参考下图:
docker的几个重要概念:
1.Registry
Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库。
Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
2.Image
Docker镜像是用于创建 Docker 容器的模板。
3.Container
容器是独立运行的一个或一组应用。
4.Host
一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
5.Daemon
docker的后台服务进程dockerd。
6.Client
Docker客户端通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信。
docker安装
我们以Ubuntu 18.04为例子,安装docker是比较简单的命令如下:
docker的简单使用
我们暂时还不打算讲解如何做镜像,先以用为主,用熟了再学如何制作自己的镜像。容器的思想很简单,就是Build once,Run anywhere,从上面的架构图可以看到,最简单核心的流程就是build>pull>run,build就是制作镜像,pull就是从镜像hub获取指定镜像,最后一步就是run把镜像跑起来。
由于build制作镜像稍微有点复杂,我们就先跳过,直接从pull和run开始,直接使用https://hub.docker.com/上面别人做好的。
了解run机制
从字面上讲,run只是跑起一个镜像实例,实际上内部可以分为两个步骤,第一步是把镜像装入容器并创建实例(我们可以称之为create),第二步就是把装入了镜像的容器实例跑起来(我们可以称之为start)。
我们先做一个试验,我们执行两次docker run hello-world
这样的输出结果,我们可以得知,原来每run一次,都会重新创建一个新的容器实例,如果我们要把容器实例停止或者开启,应该是用stop和start,删除实例我们可以用rm,具体看下面的演示:
可以看到容器实例目前就只剩下一个了,我们可以再对剩下的容器进行stop和start测试。了解这个run机制非常关键,这也是笔者一开始接触和学习的时候所踩过的坑,一直觉得run就是运行的意思,多次run都是运行同一个实例,因此先把run的机制搞懂是很基础和很关键的。今天就先到这,下期我们继续深入学习docker的使用。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。