Coursera 笔记

Module 01 · Containers and Containerization

Docker ObjectsDocker 对象简介

Coursera ↗

🎶 欢迎来到《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 引擎只会重建更改过的层。镜像可以共享这些层,从而节省大量磁盘空间和网络带宽,尤其在发送和接收镜像时。

在镜像被实例化后,您会得到一个运行中的容器。此时,一个可写的容器层会被放置在只读层之上。容器之所以需要可写层,是因为容器不像镜像那样不可变。


 镜像命名

镜像的命名格式包括三部分:

  1. 主机名:识别镜像注册表
  2. 仓库名:相关容器镜像的集合
  3. 标签:提供有关镜像特定版本或变体的信息

例如,镜像名称 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 使用卷和绑定挂载来持久化数据,即使容器停止运行。
  • 插件,如存储插件,提供了连接外部存储平台的能力。

🎶 感谢观看!