mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
更新Docker安装、镜像、Dockerfile和Compose等文档内容
This commit is contained in:
@@ -2,6 +2,28 @@
|
||||
|
||||
Docker Compose 提供了丰富的命令来管理项目和容器。本节将详细介绍这些命令的使用格式和常用选项。
|
||||
|
||||
### 何时用哪个命令:场景化指南
|
||||
|
||||
在学习具体命令前,让我们从使用场景出发,这样可以帮助你更快地找到需要的命令:
|
||||
|
||||
**项目启动与停止**:
|
||||
- `docker compose up`:第一次启动项目,拉取镜像、创建容器
|
||||
- `docker compose start`:启动已停止的容器(项目已存在)
|
||||
- `docker compose stop`:优雅地停止容器(不删除容器)
|
||||
- `docker compose down`:完全清理,删除容器和网络(开发时常用)
|
||||
|
||||
**调试与查看**:
|
||||
- `docker compose ps`:查看项目中的容器状态
|
||||
- `docker compose logs`:查看容器日志(排查问题的第一步)
|
||||
- `docker compose exec`:进入正在运行的容器执行命令
|
||||
|
||||
**构建与更新**:
|
||||
- `docker compose build`:重新构建镜像(修改 Dockerfile 后)
|
||||
- `docker compose pull`:更新所有镜像到最新版本
|
||||
|
||||
**配置验证**:
|
||||
- `docker compose config`:验证 docker-compose.yml 格式是否正确
|
||||
|
||||
### 11.4.1 命令对象与格式
|
||||
|
||||
对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。
|
||||
|
||||
+14
-1
@@ -3,9 +3,22 @@
|
||||
`Docker Compose` 是 Docker 官方编排 (Orchestration) 项目之一,负责快速的部署分布式应用。
|
||||
|
||||
> ⚠️ **重要提示:Compose V1 已停止支持**
|
||||
>
|
||||
>
|
||||
> 早期基于 Python 编写的 Compose V1(命令为 `docker-compose`)已于 2023 年中正式停止支持。现已全面升级为基于 Go 编写的 Compose V2,作为 Docker CLI 的官方插件提供(命令为 `docker compose`,中间为空格)。本书强烈推荐且后续章节均以 V2 为核心标准进行讲解。
|
||||
|
||||
## Docker Compose 解决什么问题?
|
||||
|
||||
在学习 Compose 之前,笔者想强调它的真正价值。假设你正在开发一个微服务应用——前端、后端、数据库三个服务。如果你用 Docker 容器分别运行它们,你会遇到这些问题:
|
||||
|
||||
1. **启动顺序**:需要先启数据库,再启后端,最后启前端
|
||||
2. **网络连接**:三个容器需要能彼此通信
|
||||
3. **卷挂载**:本地代码需要映射到容器内
|
||||
4. **环境变量**:每个服务的配置需要逐个设置
|
||||
|
||||
使用 `docker run` 逐个启动的话,需要记住 3 条复杂的命令。而 **Docker Compose 的核心价值就是用一个 YAML 文件来定义整个应用**,然后一条命令 `docker compose up` 启动所有服务。这是 Compose 被广泛采用的原因——它极大地简化了本地开发和测试的复杂性。
|
||||
|
||||
**谁应该学 Compose?** 任何使用 Docker 进行本地开发的人,以及需要快速部署多容器应用的团队。
|
||||
|
||||
本章将介绍 `Compose` 项目情况以及安装和使用。
|
||||
|
||||
* [简介](11.1_introduction.md)
|
||||
|
||||
Reference in New Issue
Block a user