Fix words

This commit is contained in:
Baohua Yang
2026-01-10 22:39:51 -08:00
parent 6ea398255a
commit 8e85c1278a
36 changed files with 346 additions and 186 deletions

View File

@@ -4,12 +4,12 @@
对于 Compose 来说大部分命令的对象既可以是项目本身也可以指定为项目中的服务或者容器如果没有特别的说明命令对象将是项目这意味着项目中所有的服务都会受到命令影响
执行 `docker-compose [COMMAND] --help` 或者 `docker-compose help [COMMAND]` 可以查看具体某个命令的使用格式
执行 `docker compose [COMMAND] --help` 或者 `docker compose help [COMMAND]` 可以查看具体某个命令的使用格式
`docker-compose` 命令的基本的使用格式是
`docker compose` 命令的基本的使用格式是
```bash
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
docker compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
```
## 命令选项
@@ -26,13 +26,13 @@ docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
### `build`
格式为 `docker-compose build [options] [SERVICE...]`
格式为 `docker compose build [options] [SERVICE...]`
构建重新构建项目中的服务容器
服务容器一旦构建后将会带上一个标记名例如对于 web 项目中的一个 db 容器可能是 web_db
可以随时在项目目录下运行 `docker-compose build` 来重新构建服务
可以随时在项目目录下运行 `docker compose build` 来重新构建服务
选项包括
@@ -64,19 +64,19 @@ docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
### `kill`
格式为 `docker-compose kill [options] [SERVICE...]`
格式为 `docker compose kill [options] [SERVICE...]`
通过发送 `SIGKILL` 信号来强制停止服务容器
支持通过 `-s` 参数来指定发送的信号例如通过如下指令发送 `SIGINT` 信号
```bash
$ docker-compose kill -s SIGINT
$ docker compose kill -s SIGINT
```
### `logs`
格式为 `docker-compose logs [options] [SERVICE...]`
格式为 `docker compose logs [options] [SERVICE...]`
查看服务容器的输出默认情况下docker-compose 将对不同的服务输出使用不同的颜色来区分可以通过 `--no-color` 来关闭颜色
@@ -84,13 +84,13 @@ $ docker-compose kill -s SIGINT
### `pause`
格式为 `docker-compose pause [SERVICE...]`
格式为 `docker compose pause [SERVICE...]`
暂停一个服务容器
### `port`
格式为 `docker-compose port [options] SERVICE PRIVATE_PORT`
格式为 `docker compose port [options] SERVICE PRIVATE_PORT`
打印某个容器端口所映射的公共端口
@@ -102,7 +102,7 @@ $ docker-compose kill -s SIGINT
### `ps`
格式为 `docker-compose ps [options] [SERVICE...]`
格式为 `docker compose ps [options] [SERVICE...]`
列出项目中目前的所有容器
@@ -112,7 +112,7 @@ $ docker-compose kill -s SIGINT
### `pull`
格式为 `docker-compose pull [options] [SERVICE...]`
格式为 `docker compose pull [options] [SERVICE...]`
拉取服务依赖的镜像
@@ -126,7 +126,7 @@ $ docker-compose kill -s SIGINT
### `restart`
格式为 `docker-compose restart [options] [SERVICE...]`
格式为 `docker compose restart [options] [SERVICE...]`
重启项目中的服务
@@ -136,9 +136,9 @@ $ docker-compose kill -s SIGINT
### `rm`
格式为 `docker-compose rm [options] [SERVICE...]`
格式为 `docker compose rm [options] [SERVICE...]`
删除所有停止状态的服务容器推荐先执行 `docker-compose stop` 命令来停止容器
删除所有停止状态的服务容器推荐先执行 `docker compose stop` 命令来停止容器
选项
@@ -147,14 +147,14 @@ $ docker-compose kill -s SIGINT
* `-v` 删除容器所挂载的数据卷
### `run`
格式为 `docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`
格式为 `docker compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]`
在指定服务上执行一个命令
例如
```bash
$ docker-compose run ubuntu ping docker.com
$ docker compose run ubuntu ping docker.com
```
将会启动一个 ubuntu 服务容器并执行 `ping docker.com` 命令
@@ -172,7 +172,7 @@ $ docker-compose run ubuntu ping docker.com
如果不希望自动启动关联的容器可以使用 `--no-deps` 选项例如
```bash
$ docker-compose run --no-deps web python manage.py shell
$ docker compose run --no-deps web python manage.py shell
```
将不会启动 web 容器所关联的其它容器
@@ -201,14 +201,14 @@ $ docker-compose run --no-deps web python manage.py shell
### `scale`
格式为 `docker-compose scale [options] [SERVICE=NUM...]`
格式为 `docker compose scale [options] [SERVICE=NUM...]`
设置指定服务运行的容器个数
通过 `service=num` 的参数来设置数量例如
```bash
$ docker-compose scale web=3 db=2
$ docker compose scale web=3 db=2
```
将启动 3 个容器运行 web 服务2 个容器运行 db 服务
@@ -221,15 +221,15 @@ $ docker-compose scale web=3 db=2
### `start`
格式为 `docker-compose start [SERVICE...]`
格式为 `docker compose start [SERVICE...]`
启动已经存在的服务容器
### `stop`
格式为 `docker-compose stop [options] [SERVICE...]`
格式为 `docker compose stop [options] [SERVICE...]`
停止已经处于运行状态的容器但不删除它通过 `docker-compose start` 可以再次启动这些容器
停止已经处于运行状态的容器但不删除它通过 `docker compose start` 可以再次启动这些容器
选项
@@ -241,13 +241,13 @@ $ docker-compose scale web=3 db=2
### `unpause`
格式为 `docker-compose unpause [SERVICE...]`
格式为 `docker compose unpause [SERVICE...]`
恢复处于暂停状态中的服务
### `up`
格式为 `docker-compose up [options] [SERVICE...]`
格式为 `docker compose up [options] [SERVICE...]`
该命令十分强大它将尝试自动完成包括构建镜像重新创建服务启动服务并关联服务相关容器的一系列操作
@@ -255,13 +255,13 @@ $ docker-compose scale web=3 db=2
可以说大部分时候都可以直接通过该命令来启动一个项目
默认情况`docker-compose up` 启动的容器都在前台控制台将会同时打印所有容器的输出信息可以很方便进行调试
默认情况`docker compose up` 启动的容器都在前台控制台将会同时打印所有容器的输出信息可以很方便进行调试
当通过 `Ctrl-C` 停止命令时所有容器将会停止
如果使用 `docker-compose up -d`将会在后台启动并运行所有的容器一般推荐生产环境下使用该选项
如果使用 `docker compose up -d`将会在后台启动并运行所有的容器一般推荐生产环境下使用该选项
默认情况如果服务容器已经存在`docker-compose up` 将会尝试停止容器然后重新创建保持使用 `volumes-from` 挂载的卷以保证新启动的服务匹配 `docker-compose.yml` 文件的最新内容如果用户不希望容器被停止并重新创建可以使用 `docker-compose up --no-recreate`这样将只会启动处于停止状态的容器而忽略已经运行的服务如果用户只想重新部署某个服务可以使用 `docker-compose up --no-deps -d <SERVICE_NAME>` 来重新创建服务并后台停止旧服务启动新服务并不会影响到其所依赖的服务
默认情况如果服务容器已经存在`docker compose up` 将会尝试停止容器然后重新创建保持使用 `volumes-from` 挂载的卷以保证新启动的服务匹配 `docker-compose.yml` 文件的最新内容如果用户不希望容器被停止并重新创建可以使用 `docker compose up --no-recreate`这样将只会启动处于停止状态的容器而忽略已经运行的服务如果用户只想重新部署某个服务可以使用 `docker compose up --no-deps -d <SERVICE_NAME>` 来重新创建服务并后台停止旧服务启动新服务并不会影响到其所依赖的服务
选项
@@ -281,7 +281,7 @@ $ docker-compose scale web=3 db=2
### `version`
格式为 `docker-compose version`
格式为 `docker compose version`
打印版本信息

View File

@@ -5,7 +5,7 @@
默认的模板文件名称为 `docker-compose.yml`格式为 YAML 格式
```yaml
version: "3"
version: "3" # 在 Compose V2 中version 字段已成为可选,且推荐不再使用。
services:
webapp:
@@ -306,7 +306,7 @@ labels:
## `links`
>注意不推荐使用该指令
>注意不推荐使用该指令容器之间应通过 Docker 网络networks进行互联
## `logging`

View File

@@ -49,10 +49,10 @@ services:
查看 [`docker-compose.yml` 章节](compose_file.md) 了解更多详细的工作机制
现在我们就可以使用 `docker-compose run` 命令启动一个 `Django` 应用了
现在我们就可以使用 `docker compose run` 命令启动一个 `Django` 应用了
```bash
$ docker-compose run web django-admin startproject django_example .
$ docker compose run web django-admin startproject django_example .
```
由于 web 服务所使用的镜像并不存在所以 Compose 会首先使用 `Dockerfile` web 服务构建一个镜像接着使用这个镜像在容器里运行 `django-admin startproject django_example` 指令
@@ -85,10 +85,10 @@ DATABASES = {
}
```
这些信息是在 [postgres](https://hub.docker.com/_/postgres/) 镜像固定设置好的。然后,运行 `docker-compose up`
这些信息是在 [postgres](https://hub.docker.com/_/postgres/) 镜像固定设置好的。然后,运行 `docker compose up`
```bash
$ docker-compose up
$ docker compose up
django_db_1 is up-to-date
Creating django_web_1 ...
@@ -113,8 +113,8 @@ web_1 | Quit the server with CONTROL-C.
这个 `Django` 应用已经开始在你的 Docker 守护进程里监听着 `8000` 端口了打开 `127.0.0.1:8000` 即可看到 `Django` 欢迎页面
你还可以在 Docker 上运行其它的管理命令例如对于同步数据库结构这种事在运行完 `docker-compose up` 在另外一个终端进入文件夹运行以下命令即可
你还可以在 Docker 上运行其它的管理命令例如对于同步数据库结构这种事在运行完 `docker compose up` 在另外一个终端进入文件夹运行以下命令即可
```bash
$ docker-compose run web python manage.py syncdb
$ docker compose run web python manage.py syncdb
```

View File

@@ -1,59 +1,46 @@
# 安装与卸载
`Compose` Docker 官方的开源项目负责实现对 Docker 容器集群的快速编排
`v2` 版本开始`Compose` 作为 `docker` 的子命令存在例如 `docker compose up`
`Compose` 支持 LinuxmacOSWindows 10 三大平台
`Compose` 可以通过 Python 的包管理工具 `pip` 进行安装也可以直接下载编译好的二进制文件使用甚至能够直接在 Docker 容器中运行
`Docker Desktop for Mac/Windows` 自带 `docker-compose` 二进制文件安装 Docker 之后可以直接使用
```bash
$ docker-compose --version
docker-compose version 1.27.4, build 40524192
```
`Docker Desktop for Mac/Windows` 自带 `docker compose` 命令
Linux 系统请使用以下介绍的方法安装
## 二进制包
## Linux
Linux 的也安装十分简单 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可
Linux 你可以通过下载 `docker-compose` 二进制包来安装
[官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。
例如 Linux 64 位系统上直接下载对应的二进制包
```bash
$ sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 国内用户可以使用以下方式加快下载
$ sudo curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
$ mkdir -p $DOCKER_CONFIG/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
```
## PIP 安装
** `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装如果您计算机的架构是 `ARM` (例如树莓派)再使用 `pip` 安装
这种方式是将 Compose 当作一个 Python 应用来从 pip 源中安装
执行安装命令
之后执行
```bash
$ sudo pip install -U docker-compose
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
```
可以看到类似如下输出说明安装成功
## 测试安装
```bash
Collecting docker-compose
Downloading docker-compose-1.27.4.tar.gz (149kB): 149kB downloaded
...
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
$ docker compose version
Docker Compose version v2.29.1
```
## bash 补全命令
```bash
$ curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
$ curl -L https://raw.githubusercontent.com/docker/compose/v2.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
```
## 卸载
@@ -61,11 +48,5 @@ $ curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/comple
如果是二进制包方式安装的删除二进制文件即可
```bash
$ sudo rm /usr/local/bin/docker-compose
```
如果是通过 `pip` 安装的则执行如下命令即可删除
```bash
$ sudo pip uninstall docker-compose
```
$ rm $DOCKER_CONFIG/cli-plugins/docker-compose
```

View File

@@ -47,10 +47,10 @@ services:
- "3000:3000"
```
所有文件就绪后我们就可以通过使用 `docker-compose run` 命令生成应用的骨架了
所有文件就绪后我们就可以通过使用 `docker compose run` 命令生成应用的骨架了
```bash
$ docker-compose run web rails new . --force --database=postgresql --skip-bundle
$ docker compose run web rails new . --force --database=postgresql --skip-bundle
```
`Compose` 会先使用 `Dockerfile` web 服务创建一个镜像接着使用这个镜像在容器里运行 `rails new ` 和它之后的命令一旦这个命令运行完后应该就可以看一个崭新的应用已经生成了
@@ -73,7 +73,7 @@ gem 'therubyracer', platforms: :ruby
现在我们已经有一个新的 `Gemfile` 文件需要再重新创建镜像这个会步骤会改变 Dockerfile 文件本身所以需要重建一次
```bash
$ docker-compose build
$ docker compose build
```
应用现在就可以启动了但配置还未完成Rails 默认读取的数据库目标是 `localhost` 我们需要手动指定容器的 `db` 同样的还需要把用户名修改成和 postgres 镜像预定的一致
@@ -97,7 +97,7 @@ test:
现在就可以启动应用了
```bash
$ docker-compose up
$ docker compose up
```
如果一切正常你应该可以看到 PostgreSQL 的输出几秒后可以看到这样的重复信息
@@ -111,7 +111,7 @@ myapp_web_1 | [2014-01-17 17:16:29] INFO WEBrick::HTTPServer#start: pid=1 port=
最后 我们需要做的是创建数据库打开另一个终端运行
```bash
$ docker-compose run web rake db:create
$ docker compose run web rake db:create
```
这个 web 应用已经开始在你的 docker 守护进程里面监听着 3000 端口了

View File

@@ -68,7 +68,67 @@ services:
### 运行 compose 项目
```bash
$ docker-compose up
$ docker compose up
```
此时访问本地 `5000` 端口每次刷新页面计数就会加 1
按下 `Ctrl-C` 停止项目
### 后台运行
```bash
$ docker compose up -d
```
### 停止
```bash
$ docker compose stop
```
### 进入服务
```bash
$ docker compose exec redis sh
/data # redis-cli
127.0.0.1:6379> get hits
"9"
```
### 查看日志
```bash
$ docker compose logs -f
```
### 构建镜像
```bash
$ docker compose build
```
### 启动服务
```bash
$ docker compose start
```
### 运行一次性命令
```bash
$ docker compose run web python app.py
```
### 验证 `docker-compose.yml`
```bash
$ docker compose config
```
### 删除项目
```bash
$ docker compose down
```

View File

@@ -1,7 +0,0 @@
# Compose V2
目前 Docker 官方用 GO 语言 [重写](https://github.com/docker/compose-cli) 了 Docker Compose并将其作为了 docker cli 的子命令,称为 `Compose V2`。你可以参照官方文档安装,然后将熟悉的 `docker-compose` 命令替换为 `docker compose`,即可使用 Docker Compose。
## 官方文档
* [Compose V2 beta](https://docs.docker.com/compose/cli-command/)

View File

@@ -48,4 +48,4 @@ volumes:
## 构建并运行项目
运行 `docker-compose up -d` Compose 就会拉取镜像再创建我们所需要的镜像然后启动 `wordpress` 和数据库容器 接着浏览器访问 `127.0.0.1:8000` 端口就能看到 `WordPress` 安装界面了
运行 `docker compose up -d` Compose 就会拉取镜像再创建我们所需要的镜像然后启动 `wordpress` 和数据库容器 接着浏览器访问 `127.0.0.1:8000` 端口就能看到 `WordPress` 安装界面了