docker 的三大必要概念
docker 的三大必要概念——镜像、容器、仓库
docker 架构图
镜像(image):模版。(web项目:1、环境 2、配置变量 3、上线项目 4、配置项目需要的静态文件)打包成镜像
docker 镜像(image)就是一个只读的模板。镜像可以用来创建 docker 容器,一个镜像可以创建很多容器。
容器(container):通过镜像来启动运行时容器,就是我们自己封装部署的东西(项目、环境、日志…)
docker 利用容器(container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。。
仓库(repository):私有仓库(公司内部)、公有仓库(docker hub,需要配置镜像加速)
仓库(repository)是集中存放镜像文件的场所。仓库(repository)和仓库注册服务器(registry)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(public)和私有仓库(private)两种形式。最大的公开仓库是 docker hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。
国内的公开仓库包括阿里云、网易云等
小结:
需要正确的理解仓库/镜像/容器这几个概念 :
- image:文件生成的容器实例,本身也是一个文件,称为镜像文件。
- 一个容器运行一种服务,当我们需要的时候,就可以通过 docker 客户端用镜像创建一个对应的运行实例,也就是我们的容器。
- 至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库中拉下来就可以了。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
docker就是类似的理念。