mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-15 22:31:13 +00:00
Fix and improve
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
## 2.1 Docker 镜像
|
||||
|
||||
## Docker 镜像
|
||||
|
||||
Docker 镜像作为容器运行的基石,其设计理念和实现机制至关重要。本节将深入探讨镜像的本质、与操作系统的关系、内容构成以及核心的分层存储机制。
|
||||
|
||||
### 一句话理解镜像
|
||||
@@ -50,7 +48,6 @@ Docker 镜像是一个特殊的文件系统,包含:
|
||||
|
||||
### 分层存储:镜像的核心设计
|
||||
|
||||
### 分层存储:镜像的核心设计
|
||||
|
||||
镜像的分层存储机制是 Docker 最具创新性的特性之一。通过 Union FS 技术,Docker 能够高效地构建和管理镜像。
|
||||
|
||||
@@ -128,8 +125,6 @@ RUN apt-get update
|
||||
RUN apt-get install -y build-essential # 安装编译工具(约 200MB)
|
||||
RUN make && make install # 编译应用
|
||||
RUN apt-get remove build-essential # 试图删除编译工具
|
||||
## 结果:镜像仍然包含 200MB 的编译工具!
|
||||
|
||||
## 结果:镜像仍然包含 200MB 的编译工具!
|
||||
```
|
||||
|
||||
@@ -144,8 +139,6 @@ RUN apt-get update && \
|
||||
apt-get autoremove -y && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
## 在同一层完成安装、使用、清理
|
||||
|
||||
## 在同一层完成安装、使用、清理
|
||||
```
|
||||
|
||||
#### 查看镜像的分层
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
## 2.2 Docker 容器
|
||||
|
||||
## Docker 容器
|
||||
|
||||
容器是 Docker 技术的核心,是应用实际运行的载体。本节将从容器的本质、与虚拟机的区别、存储层机制以及生命周期管理等方面,全面解析 Docker 容器。
|
||||
|
||||
### 一句话理解容器
|
||||
@@ -73,7 +71,6 @@
|
||||
|
||||
### 容器的存储层
|
||||
|
||||
### 容器的存储层
|
||||
|
||||
理解容器的存储层机制对于数据的持久化和镜像的优化至关重要。本节将介绍容器的可写层以及 Copy-on-Write 机制。
|
||||
|
||||
@@ -126,8 +123,6 @@ root@abc123:/# exit
|
||||
|
||||
$ docker rm abc123
|
||||
|
||||
## 数据丢了!没有任何办法恢复!
|
||||
|
||||
## 数据丢了!没有任何办法恢复!
|
||||
```
|
||||
|
||||
@@ -154,7 +149,6 @@ $ docker run -v /host/path:/container/path nginx
|
||||
|
||||
### 容器的生命周期
|
||||
|
||||
### 容器的生命周期
|
||||
|
||||
掌握容器的生命周期对于管理和调试 Docker 应用非常重要。下图展示了容器从创建到删除的完整状态流转。
|
||||
|
||||
@@ -222,8 +216,6 @@ $ docker rm -f abc123 # 强制删除运行中的容器
|
||||
```bash
|
||||
## 主进程运行,容器运行
|
||||
|
||||
## 主进程退出,容器停止
|
||||
|
||||
## 主进程退出,容器停止
|
||||
```
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
## 2.3 Docker Registry
|
||||
|
||||
## Docker Registry
|
||||
|
||||
Docker Registry 是镜像分发和管理的核心组件。本节将介绍 Registry 的基本概念、公共和私有服务的选择,以及镜像的安全管理。
|
||||
|
||||
### 一句话理解 Registry
|
||||
@@ -12,10 +10,6 @@ Docker Registry 是镜像分发和管理的核心组件。本节将介绍 Regist
|
||||
|
||||
### 核心概念
|
||||
|
||||
#### Registry、仓库、标签的关系
|
||||
|
||||
### 核心概念
|
||||
|
||||
要熟练使用 Docker Registry,首先需要理清它与仓库(Repository)、标签(Tag)之间的关系。
|
||||
|
||||
#### Registry、仓库、标签的关系
|
||||
@@ -50,9 +44,6 @@ Docker Registry 中可以包含多个 Repository,每个 Repository 可以包
|
||||
| **Tag(标签)** | 仓库内的版本标识 | `latest`、`1.25`、`alpine` |
|
||||
|
||||
#### 镜像的完整名称
|
||||
|
||||
#### 镜像的完整名称
|
||||
|
||||
一个完整的 Docker 镜像名称由 Registry 地址、用户名/组织名、仓库名和标签组成。了解其结构有助于我们更准确地定位镜像。
|
||||
|
||||
```
|
||||
@@ -90,7 +81,6 @@ gcr.io/google-containers/pause:3.6
|
||||
|
||||
### 公共 Registry 服务
|
||||
|
||||
### 公共 Registry 服务
|
||||
|
||||
公共 Registry 服务为开发者提供了便捷的镜像获取途径。其中最著名的是 Docker Hub。
|
||||
|
||||
@@ -138,7 +128,7 @@ $ docker push username/myapp:v1.0
|
||||
}
|
||||
```
|
||||
|
||||
详细配置方法请参考[镜像加速器](../install/3.9_mirror.md)章节。
|
||||
详细配置方法请参考[镜像加速器](../03_install/3.9_mirror.md)章节。
|
||||
|
||||
> ⚠️ **笔者提醒**:镜像加速器的可用性经常变化,使用前建议先测试是否可用。
|
||||
|
||||
@@ -148,7 +138,6 @@ $ docker push username/myapp:v1.0
|
||||
|
||||
#### 官方 Registry 镜像
|
||||
|
||||
#### 官方 Registry 镜像
|
||||
|
||||
Docker 官方提供了 [registry](https://hub.docker.com/_/registry/) 镜像,可以快速搭建私有 Registry:
|
||||
|
||||
@@ -174,7 +163,7 @@ $ docker pull localhost:5000/myapp:v1.0
|
||||
| 方案 | 特点 |
|
||||
|------|------|
|
||||
| **[Harbor](https://goharbor.io/)** | CNCF 项目,功能全面(用户管理、漏洞扫描、镜像签名) |
|
||||
| **[Nexus Repository](../repository/6.4_nexus3_registry.md)** | 支持多种制品类型(Docker、Maven、npm 等) |
|
||||
| **[Nexus Repository](../06_repository/6.4_nexus3_registry.md)** | 支持多种制品类型(Docker、Maven、npm 等) |
|
||||
| **云厂商服务** | 阿里云 ACR、腾讯云 TCR、AWS ECR 等 |
|
||||
|
||||
笔者建议:
|
||||
@@ -184,10 +173,6 @@ $ docker pull localhost:5000/myapp:v1.0
|
||||
|
||||
### 镜像的推送和拉取
|
||||
|
||||
#### 完整工作流程
|
||||
|
||||
### 镜像的推送和拉取
|
||||
|
||||
掌握镜像的推送(Push)和拉取(Pull)是使用 Docker Registry 的基本功。
|
||||
|
||||
#### 完整工作流程
|
||||
@@ -239,7 +224,6 @@ $ docker logout
|
||||
|
||||
### 镜像的安全性
|
||||
|
||||
### 镜像的安全性
|
||||
|
||||
在使用公共镜像或维护私有镜像时,安全性是不容忽视的重要环节。
|
||||
|
||||
@@ -298,11 +282,11 @@ $ trivy image nginx:latest
|
||||
| **Docker Hub** | 默认的公共 Registry |
|
||||
| **私有 Registry** | 企业内部使用,推荐 Harbor |
|
||||
|
||||
现在你已经了解了 Docker 的三个核心概念:[镜像](2.1_image.md)、[容器](2.2_container.md)和仓库。接下来,让我们开始[安装 Docker](../install/README.md),动手实践!
|
||||
现在你已经了解了 Docker 的三个核心概念:[镜像](2.1_image.md)、[容器](2.2_container.md)和仓库。接下来,让我们开始[安装 Docker](../03_install/README.md),动手实践!
|
||||
|
||||
### 延伸阅读
|
||||
|
||||
- [Docker Hub](../repository/6.1_dockerhub.md):Docker Hub 的详细使用
|
||||
- [私有仓库](../repository/6.2_registry.md):搭建私有 Registry
|
||||
- [私有仓库高级配置](../repository/6.3_registry_auth.md):认证、TLS 配置
|
||||
- [镜像加速器](../install/3.9_mirror.md):配置镜像加速
|
||||
- [Docker Hub](../06_repository/6.1_dockerhub.md):Docker Hub 的详细使用
|
||||
- [私有仓库](../06_repository/6.2_registry.md):搭建私有 Registry
|
||||
- [私有仓库高级配置](../06_repository/6.3_registry_auth.md):认证、TLS 配置
|
||||
- [镜像加速器](../03_install/3.9_mirror.md):配置镜像加速
|
||||
|
||||
Reference in New Issue
Block a user