Docker核心概念
Φ Docker引擎
docker引擎是一个c/s结构的应用,主要组件见下图:
解释说明:
- Server是一个常驻进程。
- REST API实现了client和server间的交互协议。
- Docker CLI实现容器和镜像的管理,为用户提供统一的操作界面。
Φ Docker构架
Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。
镜像(Image)
Docker镜像是一个只读的模板。镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
容器(Container)
Docker利用容器来运行应用。容器是从镜像创建的运行实例。容器有生命周期,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、以保证容器内部应用的安全。可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
Φ 容器生命周期
状态 | 描述 |
---|---|
Created | 容器已经被创建,容器所需的相关资源已经准备就绪,但容器中的程序还未处于运行状态。 |
Running | 容器正在运行,也就是容器中的应用正在运行。 |
Paused | 容器已暂停,表示容器中的所有程序都处于暂停 ( 不是停止 ) 状态。 |
Stopped | 容器处于停止状态,占用的资源和沙盒环境都依然存在,只是容器中的应用程序均已停止。 |
Deleted | 容器已删除,相关占用的资源及存储在 Docker 中的管理信息也都已释放和移除。 |
restarting | 重启中 |
removing | 迁移中 |
exited | 停止 |
dead | 死亡 |
Φ 容器状态流转
仓库(Repository)
仓库分为公开仓库(Public)和私有仓库(Private)两种形式 。最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。
https://www.yuque.com/polaris-docs/container/docker-registry