【入门级】docker基础知识学习与使用(二)

原创
2019/09/20 15:09
阅读数 13

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的使用。
————————————————

睿江云官网链接:https://www.eflycloud.com/home?from=RJ0037

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部