This commit is contained in:
Baohua Yang
2026-02-09 12:56:12 -08:00
parent 63377d0431
commit b44c9acd6c
228 changed files with 326 additions and 271 deletions

View File

@@ -1,4 +1,4 @@
## 快速上手5分钟
## 1.1 快速上手
本节将通过一个简单的 Web 应用例子带你快速体验 Docker 的核心流程构建镜像运行容器

View File

@@ -1,4 +1,4 @@
## 什么是 Docker
## 1.2 什么是 Docker
Docker 是彻底改变了软件开发和交付方式的革命性技术本节将从核心概念与传统虚拟机的对比技术基础以及历史生态等多个维度带你深入理解什么是 Docker
@@ -77,7 +77,7 @@ Docker 使用 [Go 语言](https://golang.google.cn/) 开发,基于 Linux 内
- **[Cgroups](https://zh.wikipedia.org/wiki/Cgroups)**实现资源限制CPU、内存、I/O 等)
- **[Union FS](https://en.wikipedia.org/wiki/Union_mount)**:实现分层存储(如 OverlayFS
> 如果你对这些底层技术感兴趣可以阅读本书的[底层实现](../13_implementation/README.md)章节
> 如果你对这些底层技术感兴趣可以阅读本书的[底层实现](../14_implementation/README.md)章节
#### Docker 架构演进

View File

@@ -1,4 +1,4 @@
## 为什么要使用 Docker
## 1.3 为什么要使用 Docker
在回答"为什么用 Docker"之前笔者想先问一个问题**你有没有经历过这些场景**
@@ -152,7 +152,7 @@ Docker 完美契合 DevOps 的工作流程:
使用 [Dockerfile](../04_image/4.5_build.md) 定义镜像构建过程使得
- 构建过程**可重复可追溯**
- 任何人都能从代码重建完全相同的镜像
- 配合 [GitHub Actions](../14_cases/ci/actions/README.md) CI 系统实现自动化
- 配合 [GitHub Actions](../15_cases/ci/actions/README.md) CI 系统实现自动化
#### 5. 轻松迁移

View File

@@ -1,4 +1,4 @@
## Docker 镜像
## 2.1 Docker 镜像
## Docker 镜像
@@ -238,5 +238,5 @@ Docker 镜像可以通过以下方式获取:
- [获取镜像](../04_image/4.1_pull.md) Registry 下载镜像
- [使用 Dockerfile 定制镜像](../04_image/4.5_build.md)创建自己的镜像
- [Dockerfile 最佳实践](../15_appendix/15.1_best_practices.md)构建高质量镜像的技巧
- [底层实现 - 联合文件系统](../13_implementation/13.4_ufs.md)深入理解分层存储的技术原理
- [Dockerfile 最佳实践](../16_appendix/16.1_best_practices.md)构建高质量镜像的技巧
- [底层实现 - 联合文件系统](../14_implementation/14.4_ufs.md)深入理解分层存储的技术原理

View File

@@ -1,4 +1,4 @@
## Docker 容器
## 2.2 Docker 容器
## Docker 容器
@@ -137,8 +137,8 @@ $ docker rm abc123
| 方式 | 说明 | 适用场景 |
|------|------|---------|
| **[数据卷Volume](../07_data_network/data/volume.md)** | Docker 管理的存储 | 数据库应用数据 |
| **[绑定挂载Bind Mount](../07_data_network/data/bind-mounts.md)** | 挂载宿主机目录 | 开发时共享代码 |
| **[数据卷Volume](../08_data_network/data/volume.md)** | Docker 管理的存储 | 数据库应用数据 |
| **[绑定挂载Bind Mount](../08_data_network/data/bind-mounts.md)** | 挂载宿主机目录 | 开发时共享代码 |
```bash
## 使用数据卷(推荐)
@@ -254,7 +254,7 @@ Docker 容器通过以下 Namespace 实现隔离:
| **IPC** | 进程间通信 | 独立的信号量消息队列 |
| **USER** | 用户 | 独立的用户和组 ID |
> 想深入了解请阅读[底层实现 - 命名空间](../13_implementation/13.2_namespace.md)
> 想深入了解请阅读[底层实现 - 命名空间](../14_implementation/14.2_namespace.md)
### 本章小结
@@ -273,4 +273,4 @@ Docker 容器通过以下 Namespace 实现隔离:
- [启动容器](../05_container/5.1_run.md)详细的容器启动选项
- [后台运行](../05_container/5.2_daemon.md)理解容器为什么会"立即退出"
- [进入容器](../05_container/5.4_attach_exec.md)如何操作运行中的容器
- [数据管理](../07_data_network/README.md)Volume 和数据持久化详解
- [数据管理](../08_data_network/README.md)Volume 和数据持久化详解

View File

@@ -1,4 +1,4 @@
## Docker Registry
## 2.3 Docker Registry
## Docker Registry

View File

@@ -1,4 +1,4 @@
## 开启实验特性
## 3.10 开启实验特性
一些 docker 命令或功能仅当 **实验特性** 开启时才能使用请按照以下方法进行设置

View File

@@ -1,4 +1,4 @@
## Ubuntu 安装 Docker
## 3.1 Ubuntu 安装 Docker
## Ubuntu 安装 Docker

View File

@@ -1,4 +1,4 @@
## Debian 安装 Docker
## 3.2 Debian 安装 Docker
## Debian 安装 Docker

View File

@@ -1,4 +1,4 @@
## Fedora 安装 Docker
## 3.3 Fedora 安装 Docker
## Fedora 安装 Docker

View File

@@ -1,4 +1,4 @@
## CentOS 安装 Docker
## 3.4 CentOS 安装 Docker
## CentOS 安装 Docker

View File

@@ -1,4 +1,4 @@
## 树莓派卡片电脑安装 Docker
## 3.5 树莓派卡片电脑安装 Docker
## 树莓派卡片电脑安装 Docker

View File

@@ -1,4 +1,4 @@
## Linux 离线安装
## 3.6 Linux 离线安装
\[TOC]

View File

@@ -1,4 +1,4 @@
## macOS
## 3.7 macOS
### 系统要求

View File

@@ -1,4 +1,4 @@
## Windows 10/11
## 3.8 Windows 10/11
Windows 平台上Docker Desktop 提供了完整的 Docker 开发环境本节介绍在 Windows 10/11 上的安装和配置

View File

@@ -1,4 +1,4 @@
## 镜像加速器
## 3.9 镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难此时可以配置镜像加速器

View File

@@ -1,4 +1,4 @@
## 获取镜像
## 4.1 获取镜像
## 获取镜像

View File

@@ -1,4 +1,4 @@
## 列出镜像
## 4.2 列出镜像
## 列出镜像

View File

@@ -1,4 +1,4 @@
## 删除本地镜像
## 4.3 删除本地镜像
当不再需要某个镜像时我们可以将其删除以释放存储空间本节介绍删除镜像的常用方法
@@ -307,4 +307,4 @@ Build Cache 0 0 0B 0B
- [列出镜像](4.2_list.md)查看和过滤镜像
- [删除容器](../05_container/4.3_rm.md)清理容器
- [数据卷](../07_data_network/data/volume.md)清理数据卷
- [数据卷](../08_data_network/data/volume.md)清理数据卷

View File

@@ -1,4 +1,4 @@
## 利用 commit 理解镜像构成
## 4.4 利用 commit 理解镜像构成
> 注意如果您是初学者您可以暂时跳过后面的内容直接学习 [容器](../05_container/) 一节

View File

@@ -1,4 +1,4 @@
## 使用 Dockerfile 定制镜像
## 4.5 使用 Dockerfile 定制镜像
从刚才的 `docker commit` 的学习中我们可以了解到镜像的定制实际上就是定制每一层所添加的配置文件如果我们可以把每一层修改安装构建操作的命令都写入一个脚本用这个脚本来构建定制镜像那么之前提及的无法重复的问题镜像构建透明性的问题体积的问题就都会解决这个脚本就是 Dockerfile

View File

@@ -1,4 +1,4 @@
## 其它制作镜像的方式
## 4.6 其它制作镜像的方式
除了标准的使用 `Dockerfile` 生成镜像的方法外由于各种特殊需求和历史原因还提供了一些其它方法用以生成镜像

View File

@@ -1,4 +1,4 @@
## 镜像的实现原理
## 4.7 镜像的实现原理
Docker 镜像是怎么实现增量的修改和维护的

View File

@@ -1,3 +0,0 @@
# Dockerfile 指令详解
我们已经介绍了 `FROM``RUN`还提及了 `COPY`, `ADD`其实 `Dockerfile` 功能很强大它提供了十多个指令下面我们继续讲解其他的指令

View File

@@ -1,4 +1,4 @@
## 启动容器
## 5.1 启动容器
本节将详细介绍 Docker 容器的启动方式包括新建启动和重新启动已停止的容器
@@ -240,7 +240,7 @@ $ docker run -d -p 80:80 nginx
$ docker run -v mydata:/app/data myapp
```
详见[数据管理](../07_data_network/README.md)
详见[数据管理](../08_data_network/README.md)
### 本章小结
@@ -256,4 +256,4 @@ $ docker run -v mydata:/app/data myapp
- [后台运行](5.2_daemon.md)理解 `-d` 参数和容器生命周期
- [进入容器](5.4_attach_exec.md)操作运行中的容器
- [网络配置](../network/README.md)理解端口映射的原理
- [数据管理](../07_data_network/README.md)数据持久化方案
- [数据管理](../08_data_network/README.md)数据持久化方案

View File

@@ -1,4 +1,4 @@
## 后台运行
## 5.2 后台运行
在生产环境中我们通常需要容器持续运行不受终端关闭的影响本节将深入讲解如何让容器在后台运行以及理解容器生命周期的核心概念
@@ -240,6 +240,6 @@ $ docker attach mycontainer
### 延伸阅读
- [进入容器](5.4_attach_exec.md)如何进入正在运行的容器执行命令
- [容器日志](../15_appendix/15.1_best_practices.md)生产环境的日志管理最佳实践
- [HEALTHCHECK 健康检查](../04_image/dockerfile/healthcheck.md)自动检测容器内服务是否正常
- [容器日志](../16_appendix/16.1_best_practices.md)生产环境的日志管理最佳实践
- [HEALTHCHECK 健康检查](../07_dockerfile/7.12_healthcheck.md)自动检测容器内服务是否正常
- [Docker Compose](../compose/README.md)管理多个后台容器的更好方式

View File

@@ -1,4 +1,4 @@
## 终止容器
## 5.3 终止容器
本节将介绍如何终止一个运行中的容器以及几种不同的终止方式及其区别

View File

@@ -1,4 +1,4 @@
## 进入容器
## 5.4 进入容器
### 为什么需要进入容器

View File

@@ -1,4 +1,4 @@
## 导出和导入容器
## 5.5 导出和导入容器
当我们需要迁移容器或者备份容器时可以使用 Docker 的导入和导出功能本节将介绍这两个命令的使用方法

View File

@@ -1,4 +1,4 @@
## 删除容器
## 5.6 删除容器
随着容器的创建和停止系统中会积累大量的容器本节将介绍如何删除不再需要的容器以及如何清理所有停止的容器
@@ -280,4 +280,4 @@ $ docker system prune -a --volumes
- [终止容器](5.3_stop.md)优雅停止容器
- [删除镜像](../04_image/4.3_rm.md)清理镜像
- [数据卷](../07_data_network/data/volume.md)数据卷管理
- [数据卷](../08_data_network/data/volume.md)数据卷管理

View File

@@ -1,4 +1,4 @@
## Docker Hub
## 6.1 Docker Hub
### 什么是 Docker Hub

View File

@@ -1,4 +1,4 @@
## 私有仓库
## 6.2 私有仓库
有时候使用 Docker Hub 这样的公共仓库可能不方便用户可以创建一个本地仓库供私人使用

View File

@@ -1,4 +1,4 @@
## 私有仓库高级配置
## 6.3 私有仓库高级配置
上一节我们搭建了一个具有基础功能的私有仓库本小节我们来使用 `Docker Compose` 搭建一个拥有权限认证TLS 的私有仓库

View File

@@ -1,4 +1,4 @@
## Nexus 3
## 6.4 Nexus 3
使用 Docker 官方的 Registry 创建的仓库面临一些维护问题比如某些镜像删除以后空间默认是不会回收的需要一些命令去回收空间然后重启 Registry在企业中把内部的一些工具包放入 `Nexus` 中是比较常见的做法最新版本 `Nexus3.x` 全面支持 Docker 的私有镜像所以使用 [`Nexus3.x`](https://www.sonatype.com/product/repository-oss-download) 一个软件来管理 `Docker` , `Maven` , `Yum` , `PyPI` 等是一个明智的选择。

View File

@@ -1,4 +1,4 @@
## WORKDIR 指定工作目录
## 7.10 WORKDIR 指定工作目录
### 基本语法
@@ -226,4 +226,4 @@ $ docker run -w /tmp myimage pwd
- [COPY 复制文件](copy.md)文件复制
- [RUN 执行命令](../../04_image/4.5_build.md)执行构建命令
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 编写指南
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南

View File

@@ -1,4 +1,4 @@
## USER 指定当前用户
## 7.11 USER 指定当前用户
### 基本语法
@@ -304,4 +304,4 @@ RUN mkdir -p /app/data && chown appuser:appuser /app/data
- [安全](../../security/README.md)容器安全实践
- [ENTRYPOINT](entrypoint.md)入口脚本中的用户切换
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 安全
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 安全

View File

@@ -1,4 +1,4 @@
## HEALTHCHECK 健康检查
## 7.12 HEALTHCHECK 健康检查
### 基本语法
@@ -219,5 +219,5 @@ HEALTHCHECK --start-period=60s CMD curl -f http://localhost/ || exit 1
### 延伸阅读
- [CMD 容器启动命令](cmd.md)启动主进程
- [Compose 模板文件](../../compose/9.5_compose_file.md)Compose 中的健康检查
- [Docker 调试](../../15_appendix/15.2_debug.md)容器排障
- [Compose 模板文件](../../compose/10.5_compose_file.md)Compose 中的健康检查
- [Docker 调试](../../16_appendix/16.2_debug.md)容器排障

View File

@@ -1,4 +1,4 @@
## ONBUILD 为他人做嫁衣裳
## 7.13 ONBUILD 为他人做嫁衣裳
### 基本语法
@@ -166,4 +166,4 @@ python:3.12-onbuild
### 延伸阅读
- [COPY 指令](copy.md)文件复制
- [Dockerfile 最佳实践](../../15_appendix/15.1_best_practices.md)基础镜像设计
- [Dockerfile 最佳实践](../../16_appendix/16.1_best_practices.md)基础镜像设计

View File

@@ -1,4 +1,4 @@
## LABEL 为镜像添加元数据
## 7.14 LABEL 为镜像添加元数据
### 基本语法
@@ -164,4 +164,4 @@ $ docker rmi $(docker images -q --filter "label=stage=builder")
### 延伸阅读
- [OCI 标签规范](https://github.com/opencontainers/image-spec/blob/main/annotations.md)
- [Dockerfile 最佳实践](../../15_appendix/15.1_best_practices.md)
- [Dockerfile 最佳实践](../../16_appendix/16.1_best_practices.md)

View File

@@ -1,4 +1,4 @@
## SHELL 指令
## 7.15 SHELL 指令
### 基本语法
@@ -151,4 +151,4 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
### 延伸阅读
- [RUN 指令](../../04_image/4.5_build.md)执行命令
- [Dockerfile 最佳实践](../../15_appendix/15.1_best_practices.md)错误处理与调试
- [Dockerfile 最佳实践](../../16_appendix/16.1_best_practices.md)错误处理与调试

View File

@@ -1,4 +1,4 @@
## 参考文档
## 7.16 参考文档
* `Dockerfile` 官方文档https://docs.docker.com/engine/reference/builder/

View File

@@ -1,4 +1,4 @@
## RUN 执行命令
## 7.1 RUN 执行命令
### 基本语法
@@ -191,4 +191,4 @@ RUN --mount=type=secret,id=mysecret \
- [CMD 容器启动命令](cmd.md)容器启动时的命令
- [WORKDIR 指定工作目录](workdir.md)改变目录
- [Dockerfile 最佳实践](../../15_appendix/15.1_best_practices.md)
- [Dockerfile 最佳实践](../../16_appendix/16.1_best_practices.md)

View File

@@ -1,4 +1,4 @@
## COPY 复制文件
## 7.2 COPY 复制文件
### 基本语法
@@ -304,4 +304,4 @@ COPY . .
- [ADD 指令](add.md)复制和解压
- [WORKDIR 指令](workdir.md)设置工作目录
- [多阶段构建](../multistage-builds.md)优化镜像大小
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 编写指南
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南

View File

@@ -1,4 +1,4 @@
## ADD 更高级的复制文件
## 7.3 ADD 更高级的复制文件
### 基本语法
@@ -259,4 +259,4 @@ RUN tar -xzf /tmp/app.tar.gz -C /app && \
- [COPY 复制文件](copy.md)基本复制操作
- [多阶段构建](../multistage-builds.md)减少镜像体积
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 编写指南
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南

View File

@@ -1,4 +1,4 @@
## CMD 容器启动命令
## 7.4 CMD 容器启动命令
### 什么是 CMD
@@ -316,4 +316,4 @@ CMD ["python", "app.py"]
- [ENTRYPOINT 入口点](entrypoint.md)固定的启动命令
- [后台运行](../../05_container/5.2_daemon.md)容器前台/后台概念
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 编写指南
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南

View File

@@ -1,4 +1,4 @@
## ENTRYPOINT 入口点
## 7.5 ENTRYPOINT 入口点
### 什么是 ENTRYPOINT
@@ -347,5 +347,5 @@ wait $PID
### 延伸阅读
- [CMD 容器启动命令](cmd.md)默认命令
- [最佳实践](../../15_appendix/15.1_best_practices.md)启动命令设计
- [最佳实践](../../16_appendix/16.1_best_practices.md)启动命令设计
- [后台运行](../../05_container/5.2_daemon.md)前台/后台概念

View File

@@ -1,4 +1,4 @@
## ENV 设置环境变量
## 7.6 ENV 设置环境变量
### 基本语法
@@ -296,5 +296,5 @@ ENV VAR3=value3
### 延伸阅读
- [ARG 构建参数](arg.md)构建时变量
- [Compose 环境变量](../../compose/9.5_compose_file.md)Compose 中的环境变量
- [最佳实践](../../15_appendix/15.1_best_practices.md)Dockerfile 编写指南
- [Compose 环境变量](../../compose/10.5_compose_file.md)Compose 中的环境变量
- [最佳实践](../../16_appendix/16.1_best_practices.md)Dockerfile 编写指南

View File

@@ -1,4 +1,4 @@
## ARG 构建参数
## 7.7 ARG 构建参数
### 基本语法

View File

@@ -1,4 +1,4 @@
## VOLUME 定义匿名卷
## 7.8 VOLUME 定义匿名卷
### 基本语法
@@ -288,6 +288,6 @@ VOLUME /var/lib/mysql
### 延伸阅读
- [数据卷](../../07_data_network/data/volume.md)卷的管理和使用
- [挂载主机目录](../../07_data_network/data/bind-mounts.md)Bind Mount
- [Compose 数据管理](../../compose/9.5_compose_file.md)Compose 中的卷配置
- [数据卷](../../08_data_network/data/volume.md)卷的管理和使用
- [挂载主机目录](../../08_data_network/data/bind-mounts.md)Bind Mount
- [Compose 数据管理](../../compose/10.5_compose_file.md)Compose 中的卷配置

View File

@@ -1,4 +1,4 @@
## EXPOSE 声明端口
## 7.9 EXPOSE 声明端口
### 基本语法
@@ -258,4 +258,4 @@ services:
- [网络配置](../../network/README.md)Docker 网络详解
- [端口映射](../../network/port_bindingbindingbinding.md)-p 参数详解
- [Compose 端口](../../compose/9.5_compose_file.md)Compose 中的端口配置
- [Compose 端口](../../compose/10.5_compose_file.md)Compose 中的端口配置

58
07_dockerfile/README.md Normal file
View File

@@ -0,0 +1,58 @@
# 第七章 Dockerfile 指令详解
## 什么是 Dockerfile
Dockerfile 是一个文本文件其內包含了一条条的 **指令(Instruction)**每一条指令构建一层therefore 每一条指令的内容就是描述该层应当如何构建
[第四章](04_image/README.md) 我们通过 `docker commit` 学习了镜像的构成但是手动 `commit` 只能作为临时修补并不适合作为生产环境镜像的构建方式
使用 Dockerfile 构建镜像有以下优势
* **自动化**可以通过 `docker build` 命令自动构建镜像
* **可重复性**由于 Dockerfile 是文本文件可以确保每次构建的结果一致
* **版本控制**Dockerfile 可以纳入版本控制系统 Git便于追踪变更
* **透明性**任何人都可以通过阅读 Dockerfile 了解镜像的构建过程
## Dockerfile 基本结构
Dockerfile 一般分为四部分基础镜像信息维护者信息镜像操作指令和容器启动时执行指令
### 指令详解
本章将详细讲解 Dockerfile 中的各个指令
* [COPY 复制文件](7.2_copy.md)
* [ADD 更高级的复制文件](7.3_add.md)
* [CMD 容器启动命令](7.4_cmd.md)
* [ENTRYPOINT 入口点](7.5_entrypoint.md)
* [ENV 设置环境变量](7.6_env.md)
* [ARG 构建参数](7.7_arg.md)
* [VOLUME 定义匿名卷](7.8_volume.md)
* [EXPOSE 暴露端口](7.9_expose.md)
* [WORKDIR 指定工作目录](7.10_workdir.md)
* [USER 指定当前用户](7.11_user.md)
* [HEALTHCHECK 健康检查](7.12_healthcheck.md)
* [ONBUILD 为他人作嫁衣裳](7.13_onbuild.md)
* [LABEL 为镜像添加元数据](7.14_label.md)
* [SHELL 指令](7.15_shell.md)
* [RUN 执行命令](5.1_run.md)
此外我们还将介绍 Dockerfile 的最佳实践和常见问题
* [参考文档](7.16_references.md)
## 使用 Dockerfile 构建镜像
构建镜像的基本命令格式为
```bash
docker build [选项] <上下文路径/URL/->
```
例如 Dockerfile 所在目录执行
```bash
docker build -t my-image:v1 .
```
更多关于 `docker build` 的用法我们在实战中会结合具体指令进行演示

View File

@@ -1,4 +1,4 @@
# 数据与网络管理
# 数据与网络管理
本章将介绍 Docker 中的数据管理与网络配置

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -329,4 +329,4 @@ $ docker run -v /app/data:/data ...
- [数据卷](volume.md)Docker 管理的持久化存储
- [tmpfs 挂载](tmpfs.md)内存临时存储
- [Compose 数据管理](../compose/9.5_compose_file.md)Compose 中的挂载配置
- [Compose 数据管理](../compose/10.5_compose_file.md)Compose 中的挂载配置

View File

@@ -417,4 +417,4 @@ $ docker volume inspect my-vol
- [绑定挂载](bind-mounts.md)挂载宿主机目录
- [tmpfs 挂载](tmpfs.md)内存中的临时存储
- [存储驱动](../13_implementation/13.4_ufs.md)Docker 存储的底层原理
- [存储驱动](../14_implementation/14.4_ufs.md)Docker 存储的底层原理

View File

@@ -330,4 +330,4 @@ $ docker network prune
- [高级网络配置](linking.md)容器互联详解
- [配置 DNS](dns.md)自定义 DNS 设置
- [端口映射](port_mapping.md)高级端口配置
- [Compose 网络](../compose/9.5_compose_file.md)Compose 中的网络配置
- [Compose 网络](../compose/10.5_compose_file.md)Compose 中的网络配置

View File

@@ -164,5 +164,5 @@ iptables -t nat -A DOCKER -p tcp --dport 8080 -j DNAT --to-destination 172.17.0.
### 延伸阅读
- [EXPOSE 指令](../04_image/dockerfile/expose.md) Dockerfile 中声明端口
- [EXPOSE 指令](../07_dockerfile/7.9_expose.md) Dockerfile 中声明端口
- [网络模式](README.md)Host 模式不需要端口映射

View File

@@ -1,4 +1,4 @@
## 使用 `BuildKit` 构建镜像
## 9.1 使用 `BuildKit` 构建镜像
**BuildKit** 是下一代的镜像构建组件 https://github.com/moby/buildkit 开源。

View File

@@ -1,4 +1,4 @@
## 使用 Buildx 构建镜像
## 9.2 使用 Buildx 构建镜像
### 使用
@@ -12,7 +12,7 @@ $ docker buildx build .
=> ...
```
Buildx 使用 [BuildKit 引擎](8.1_buildkit.md) 进行构建支持许多新的功能具体参考 [Buildkit](8.1_buildkit.md) 一节
Buildx 使用 [BuildKit 引擎](9.1_buildkit.md) 进行构建支持许多新的功能具体参考 [Buildkit](9.1_buildkit.md) 一节
#### 使用 `bake`

View File

@@ -1,4 +1,4 @@
## 构建多种系统架构支持的 Docker 镜像
## 9.3 构建多种系统架构支持的 Docker 镜像
Docker 镜像可以支持多种系统架构这意味着你可以在 `x86_64``arm64` 等不同架构的机器上运行同一个镜像这是通过一个名为 "manifest list"或称为 "fat manifest"的文件来实现的

View File

@@ -1,6 +1,6 @@
# Docker Buildx
# Docker Buildx
Docker Buildx 是一个 docker CLI 插件其扩展了 docker 命令支持 [Moby BuildKit](8.1_buildkit.md) 提供的功能提供了与 docker build 相同的用户体验并增加了许多新功能
Docker Buildx 是一个 docker CLI 插件其扩展了 docker 命令支持 [Moby BuildKit](9.1_buildkit.md) 提供的功能提供了与 docker build 相同的用户体验并增加了许多新功能
> 该功能仅适用于 Docker v19.03+ 版本
@@ -8,6 +8,6 @@ Docker Buildx 是一个 docker CLI 插件,其扩展了 docker 命令,支持
本章将详细介绍 Docker Buildx 的使用包括
* [使用 BuildKit 构建镜像](8.1_buildkit.md)
* [使用 Buildx 构建镜像](8.2_buildx.md)
* [构建多种系统架构支持的 Docker 镜像](8.3_multi-arch-images.md)
* [使用 BuildKit 构建镜像](9.1_buildkit.md)
* [使用 Buildx 构建镜像](9.2_buildx.md)
* [构建多种系统架构支持的 Docker 镜像](9.3_multi-arch-images.md)

View File

@@ -1,4 +1,4 @@
## Compose 简介
## 10.1 Compose 简介
`Compose` 项目是 Docker 官方的开源项目负责实现对 Docker 容器集群的快速编排从功能上看 `OpenStack` 中的 `Heat` 十分类似

View File

@@ -1,4 +1,4 @@
## 安装与卸载
## 10.2 安装与卸载
`Compose` Docker 官方的开源项目负责实现对 Docker 容器集群的快速编排

View File

@@ -1,4 +1,4 @@
## 使用
## 10.3 使用
本节将通过一个具体的 Web 应用案例介绍 Docker Compose 的基本概念和使用方法

View File

@@ -1,4 +1,4 @@
## Compose 命令说明
## 10.4 Compose 命令说明
Docker Compose 提供了丰富的命令来管理项目和容器本节将详细介绍这些命令的使用格式和常用选项

View File

@@ -1,4 +1,4 @@
## Compose 模板文件
## 10.5 Compose 模板文件
模板文件是使用 `Compose` 的核心涉及到的指令关键字也比较多但大家不用担心这里面大部分指令跟 `docker run` 相关参数的含义都是类似的

View File

@@ -1,4 +1,4 @@
## 使用 Django
## 10.6 使用 Django
> 本小节内容适合 `Python` 开发人员阅读
@@ -360,7 +360,7 @@ services:
### 延伸阅读
- [Compose 模板文件详解](9.5_compose_file.md)深入理解 docker-compose.yml 的所有配置项
- [使用 WordPress](9.8_wordpress.md)另一个 Compose 实战案例
- [Dockerfile 最佳实践](../15_appendix/15.1_best_practices.md)构建更小更安全的镜像
- [数据管理](../07_data_network/README.md)Volume 和数据持久化详解
- [Compose 模板文件详解](10.5_compose_file.md)深入理解 docker-compose.yml 的所有配置项
- [使用 WordPress](10.8_wordpress.md)另一个 Compose 实战案例
- [Dockerfile 最佳实践](../16_appendix/16.1_best_practices.md)构建更小更安全的镜像
- [数据管理](../08_data_network/README.md)Volume 和数据持久化详解

View File

@@ -1,4 +1,4 @@
## 使用 Rails
## 10.7 使用 Rails
> 本小节内容适合 Ruby 开发人员阅读
@@ -282,6 +282,6 @@ $ docker compose run --rm web bundle update
### 延伸阅读
- [使用 Django](9.6_django.md)Python Web 框架实战
- [Compose 模板文件](9.5_compose_file.md)配置详解
- [数据管理](../07_data_network/README.md)数据持久化
- [使用 Django](10.6_django.md)Python Web 框架实战
- [Compose 模板文件](10.5_compose_file.md)配置详解
- [数据管理](../08_data_network/README.md)数据持久化

View File

@@ -1,4 +1,4 @@
## 实战 WordPress
## 10.8 实战 WordPress
WordPress 是全球最流行的内容管理系统CMS使用 Docker Compose 可以在几分钟内搭建一个包含数据库Web 服务和持久化存储的生产级 WordPress 环境
@@ -206,6 +206,6 @@ $ docker compose restart wordpress
### 延伸阅读
- [Compose 模板文件](9.5_compose_file.md)深入了解配置项
- [数据卷](../07_data_network/data/volume.md)理解数据持久化
- [Compose 模板文件](10.5_compose_file.md)深入了解配置项
- [数据卷](../08_data_network/data/volume.md)理解数据持久化
- [Docker Hub WordPress](https://hub.docker.com/_/wordpress):官方镜像文档

View File

@@ -1,3 +1,3 @@
## 使用 compose 搭建 LNMP 环境
## 10.9 使用 compose 搭建 LNMP 环境
本项目的维护者 [khs1994](https://github.com/khs1994) 的开源项目 [khs1994-docker/lnmp](https://github.com/khs1994-docker/lnmp) 使用 Docker Compose 搭建了一套 LNMP 环境,各位开发者可以参考该项目在 Docker 或 Kubernetes 中运行 LNMP。

View File

@@ -1,4 +1,4 @@
# Docker Compose
# Docker Compose
`Docker Compose` Docker 官方编排Orchestration项目之一负责快速的部署分布式应用

View File

@@ -1,4 +1,4 @@
# 第十章 运维管理
# 第十 运维管理
本章将介绍 Docker 的运维管理包括监控日志与安全

View File

@@ -38,7 +38,7 @@
| IPC | 进程通信 | 隔离共享内存 |
| UTS | 主机名 | 独立主机名 |
详见 [命名空间](../13_implementation/13.2_namespace.md) 章节
详见 [命名空间](../14_implementation/14.2_namespace.md) 章节
### 2. 控制组Cgroups
@@ -393,6 +393,6 @@ $ cosign verify --key cosign.pub myimage:tag
## 延伸阅读
- [命名空间](../13_implementation/13.2_namespace.md)隔离机制详解
- [控制组](../13_implementation/13.3_cgroups.md)资源限制详解
- [最佳实践](../15_appendix/15.1_best_practices.md)Dockerfile 安全配置
- [命名空间](../14_implementation/14.2_namespace.md)隔离机制详解
- [控制组](../14_implementation/14.3_cgroups.md)资源限制详解
- [最佳实践](../16_appendix/16.1_best_practices.md)Dockerfile 安全配置

View File

@@ -1,4 +1,4 @@
# 第十 容器编排
# 第十 容器编排
本章将介绍容器编排相关的技术与工具

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Some files were not shown because too many files have changed in this diff Show More