Module 01 · Containers and Containerization
Docker ObjectsDocker 对象简介
🎶 欢迎来到《Docker 对象简介》课程!
通过观看本视频,您将能够:
- 识别并描述 Docker 对象
- 识别 Docker 文件的基本命令
- 解释容器镜像的命名规则
- 描述 Docker 如何使用网络、存储和插件
Docker 对象
Docker 包含多个对象,如 Docker 文件、镜像、容器、网络、存储卷 以及其他对象,如插件和附加组件。
Docker 文件
Docker 文件是一个文本文件,包含创建镜像所需的指令。您可以使用任何编辑器通过控制台或终端创建 Docker 文件。
常用 Docker 文件指令
- FROM:定义基础镜像,通常来自公共仓库,如操作系统镜像或特定语言镜像(如 Go 或 Node.js)。
- RUN:执行命令。
- CMD:定义默认执行命令。一个 Docker 文件只能有一个 CMD 指令。如果 Docker 文件中有多个 CMD 指令,只有最后一个 CMD 指令会生效。
Docker 镜像
Docker 镜像是一个只读模板,包含创建 Docker 容器的指令。
Docker 文件提供了构建镜像的指令,每个指令会在镜像中创建一个新的层。
当您更改 Docker 文件并重新构建镜像时,Docker 引擎只会重建更改过的层。镜像可以共享这些层,从而节省大量磁盘空间和网络带宽,尤其在发送和接收镜像时。
在镜像被实例化后,您会得到一个运行中的容器。此时,一个可写的容器层会被放置在只读层之上。容器之所以需要可写层,是因为容器不像镜像那样不可变。
镜像命名
镜像的命名格式包括三部分:
- 主机名:识别镜像注册表
- 仓库名:相关容器镜像的集合
- 标签:提供有关镜像特定版本或变体的信息
例如,镜像名称 docker.io/ubuntu:18.04 中:
docker.io是 Docker Hub 注册表的主机名- Ubuntu 是仓库名称,指示 Ubuntu 镜像
- 18.04 是标签,表示安装的 Ubuntu 版本
如果使用 Docker CLI,您可以省略主机名 docker.io。
Docker 容器
什么是 Docker 容器?
Docker 容器是镜像的可运行实例。
您可以使用 Docker API 或 CLI 创建、启动、停止或删除容器。
容器可以连接多个网络、附加存储,或者基于当前状态创建新的镜像。
Docker 保证容器之间以及容器与主机之间的良好隔离。
Docker 网络与存储
Docker 网络
Docker 网络用于隔离容器之间的通信。默认情况下,当容器停止运行后,数据不会持久化。
持久化存储
Docker 使用 卷(Volumes) 和 绑定挂载(Bind Mounts) 来持久化数据,即使容器停止运行后,数据仍然可以保留。
插件,如 存储插件,提供连接外部存储平台的能力。
总结
在本视频中,您学到了:
- Docker 包含多个对象,如 Docker 文件、镜像、容器、网络、存储卷以及插件和附加组件。
- 基本的 Docker 指令包括 FROM、RUN 和 CMD。
- Docker 容器是镜像的可运行实例。
- 镜像名称格式包含三个部分:主机名、仓库和标签。
- Docker 使用网络来隔离容器通信。
- Docker 使用卷和绑定挂载来持久化数据,即使容器停止运行。
- 插件,如存储插件,提供了连接外部存储平台的能力。
🎶 感谢观看!