Docker 与 Kubernetes 的基本原理与联系
Docker
Docker 出现的原因
相信程序员们都听过一个梗:“这个脚本在我的机子上跑没问题啊?” Docker 的出现让这个梗成为了过去式,开发者可以打包他们的应用、依赖包和环境变量等配置到一个容器中,然后将这个容器发布安装 Linux 的机器上,这个过程省去了开发与运维配置相同环境的工作。
那么 Docker 的底层具体是怎么实现的呢?Docker 实际上是一个Client-Server 结构的系统,Docker 的守护进程运行在主机上, 然后客户端通过 Socket 连接访问 Docker 守护进程,Docker 守护进程从客户端接受命令,并按照命令,管理运行在主机上的容器。
Docker 在具体使用时,需要先从仓库中拉取一个镜像文件,并且启动一个容器。 这里提到的镜像文件、容器和仓库,是 Docker 中比较重要的几个概念,会在下文讲述。
Docker 中的重要概念
-
镜像文件 Image:相当于是一个配置了一定环境的 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。我们也可以发布自己配置好环境的镜像文件。
-
容器 Container:容器是镜像时的实体,容器可以被创建、启动、停止、删除、暂停等。
-
仓库 Repository:仓库用来保存一系列镜像。