# docker-compose 常用命令

Docker Compose 是一个用于定义和运行多容器应用程序的工具。它是解锁精简高效的开发和部署体验的关键。

Compose 简化了整个应用程序堆栈的控制，让您可以轻松地在一个易于理解的 YAML 配置文件中管理服务、网络和卷。然后，您只需一个命令即可从配置文件中创建并启动所有服务。

官网：<https://docs.docker.com/compose/>

## 基本命令

#### help

`docker-compose -help` 查看帮助。

#### config

`docker-compose config -q` 验证docker-compose.yml文件。当配置正确时，不输出任何内容，当配置错误时，输出错误信息。

#### pull

`docker-compose pull` 拉取服务依赖的镜像。

```docker
# 拉取工程中所有服务依赖的镜像
docker-compose pull
# 拉取工程中 nginx 服务依赖的镜像
docker-compose pull nginx
# 拉取镜像过程中不打印拉取进度信息
docker-compose pull -q
```

#### up

`docker-compose up` 创建并启动所有服务的容器。指定多个yml加-f选项。以守护进程模式运行加-d选项。

```docker
# 前台启动
docker-compose up
# 后台启动
docker-compose up -d
# -f 指定使用的 Compose 模板文件，默认为 docker-compose.yml，可以多次指定，指定多个 yml
docker-compose -f docker-compose.yml up -d
```

#### logs

`docker-compose logs` 查看服务容器的输出日志。默认情况下，`docker-compose` 将对不同的服务输出使用不同的颜色来区分。可以通过 `--no-color` 来关闭颜色。

```docker
# 输出日志，不同的服务输出使用不同的颜色来区分
docker-compose logs
# 跟踪日志输出
docker-compose logs -f
# 关闭颜色
docker-compose logs --no-color
```

#### ps

`docker-compose ps` 列出工程中所有服务的容器。

```docker
# 列出工程中所有服务的容器
docker-compose ps
# 列出工程中指定服务的容器
docker-compose ps nginx
```

#### run

`docker-compose run` 在指定服务容器上额外执行一个命令。

```docker
# 在工程中指定服务的容器上执行 echo "helloworld"
docker-compose run nginx echo "helloworld"
```

#### exec

`docker-compose exec` 进入服务容器。

```docker
# 进入工程中指定服务的容器
docker-compose exec nginx bash
# 当一个服务拥有多个容器时，可通过 --index 参数进入到该服务下的任何容器
docker-compose exec --index=1 nginx bash
```

#### pause

`docker-compose pause` 暂停服务容器

```docker
# 暂停工程中所有服务的容器
docker-compose pause
# 暂停工程中指定服务的容器
docker-compose pause nginx
```

#### unpause

`docker-compose unpause` 恢复服务容器。

```docker
# 恢复工程中所有服务的容器
docker-compose unpause
# 恢复工程中指定服务的容器
docker-compose unpause nginx
```

#### restart

`docker-compose restart` 重启服务容器。

```docker
# 重启工程中所有服务的容器
docker-compose restart
# 重启工程中指定服务的容器
docker-compose restart nginx
```

#### start

`docker-compose start` 启动服务容器。

```docker
# 启动工程中所有服务的容器
docker-compose start
# 启动工程中指定服务的容器
docker-compose start nginx
```

#### stop

`docker-compose stop` 停止服务容器。

```docker
# 停止工程中所有服务的容器
docker-compose stop
# 停止工程中指定服务的容器
docker-compose stop nginx
```

#### kill

`docker-compose kill` 通过发送SIGKILL信号停止指定服务的容器。

```docker
# 通过发送 SIGKILL 信号停止工程中指定服务的容器
docker-compose kill nginx
```

#### rm

`docker-compose rm` 删除服务（停止状态）容器。

```docker
# 删除所有（停止状态）服务的容器
docker-compose rm
# 先停止所有服务的容器，再删除所有服务的容器
docker-compose rm -s
# 不询问是否删除，直接删除
docker-compose rm -f
# 删除服务容器挂载的数据卷
docker-compose rm -v
# 删除工程中指定服务的容器
docker-compose rm -sv nginx
```

#### down

`docker-compose down` 停止并删除所有服务的容器、网络、镜像、数据卷。

```docker
# 停止并删除工程中所有服务的容器、网络
docker-compose stop
# 停止并删除工程中所有服务的容器、网络、镜像
docker-compose down --rmi all
# 停止并删除工程中所有服务的容器、网络、数据卷
docker-compose down -v
```

#### images

`docker-compose images` 打印服务容器所对应的镜像。

```docker
# 打印所有服务的容器所对应的镜像
docker-compose images
# 打印指定服务的容器所对应的镜像
docker-compose images nginx
```

#### port

`docker-compose port` 打印指定服务容器的某个端口所映射的宿主机端口。

```docker
docker-compose port nginx 80
0.0.0.0:80
docker-compose port jenkins 8080
0.0.0.0:8088
```

#### top

`docker-compose top` 显示正在运行的进程。

```docker
# 显示工程中所有服务的容器正在运行的进程
docker-compose top
# 显示工程中指定服务的容器正在运行的进程
docker-compose top nginx
```

## 实战

* [示例一](/docker/docker-compose/docker-compose-simple-1.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tuonioooo-notebook.gitbook.io/docker/docker-compose/docker-compose-common-command.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
