mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-23 18:25:25 +00:00
Fix words
This commit is contained in:
@@ -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`。
|
||||
|
||||
打印版本信息。
|
||||
|
||||
|
||||
@@ -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`
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
@@ -1,59 +1,46 @@
|
||||
# 安装与卸载
|
||||
|
||||
`Compose` 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
|
||||
|
||||
从 `v2` 版本开始,`Compose` 作为 `docker` 的子命令存在,例如 `docker compose up`。
|
||||
|
||||
`Compose` 支持 Linux、macOS、Windows 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
|
||||
```
|
||||
@@ -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 端口了。
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
@@ -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/)
|
||||
@@ -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` 安装界面了。
|
||||
|
||||
Reference in New Issue
Block a user