title |
---|
Docker 三大组件 |
使用 Docker 时,可以创建应用和服务并将它们及其依赖项打包到容器映像中。
映像是应用或服务及其配置和依赖项的静态表示形式。
若要运行应用或服务,应用的映像会被实例化,从而创建一个在 Docker 主机上运行的容器。
容器最初在开发环境或 PC 中进行测试。
在注册表中,作为映像库中存储图像。 需要注册表才可部署到生产协调程序。
Docker 通过 Docker Hub维护一个公共注册表, 其他供应商为不同映像集合提供注册表,包括 Azure 容器注册表。或者,企业可以在本地为自己的 Docker 映像建立一个专用注册表。
-
Image映像
- image 是二进制文件.
- Docker 把应用程序及其依赖,打包在 image 文件里面.
- 映像包括所有依赖项(例如框架),以及容器运行时使用的部署和执行配置。
- 同一个 image 文件,可以生成多个同时运行的容器实例.
- 一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成.
- Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库.
- 创建后,映像不可变。
-
Container容器
- Docker 映像的实例.
- 有些容器不会自动终止,因为提供的是服务.
- image 文件生成的容器实例,本身也是一个文件,称为容器文件.
- 关闭容器并不会删除容器文件,只是容器停止运行而已.
- 可以从相同的映像创建多个容器实例向每个实例传递不同的参数。
- 容器表示单个应用程序、进程或服务的执行。
- 它由 Docker 映像的内容、执行环境和一组标准指令组成。
- 从应用程序的角度来看,实例化映像(创建容器)类似于实例化 服务或 Web 应用等进程。
-
Registry
- 提供存储库访问权限的服务。
- 注册表通常包含来自多个团队的存储库。
- 公司通常使用私有注册表来存储和管理其创建的映像。
- 大多数公共映像的默认注册表是 Docker 中心(归作为组织的 Docker 所有)
-
存储库 (repo)
- 单个存储库中可包含平台变量,如 Linux 映像和 Windows 映像。
- 相关的 Docker 映像集合,带有指示映像版本的标记。
- 某些存储库包含特定映像的多个变量,例如包含 SDK(较重)的映像,包含唯一运行时(较轻)的映像,等等。
-
Dockerfile (制作 image)
- 包含有关如何生成 Docker 映像的说明的文本文件。
- 就像批处理脚本、 第一行说明从开始,然后按照说明安装所需的程序,复制文件的基本映像,而你需要依此类推,直到获取工作环境。
-
Docker-Compose
# Build the image: $ docker-compose build # Once the image is built, run the container: $ docker-compose up -d
Check for errors in the logs if this doesn't work via docker-compose logs -f