2019-11-05 23:35:43 +08:00
# Compose 命 令 说 明
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # 命 令 对 象 与 格 式
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
对 于 Compose 来 说 , 大 部 分 命 令 的 对 象 既 可 以 是 项 目 本 身 , 也 可 以 指 定 为 项 目 中 的 服 务 或 者 容 器 。 如 果 没 有 特 别 的 说 明 , 命 令 对 象 将 是 项 目 , 这 意 味 着 项 目 中 所 有 的 服 务 都 会 受 到 命 令 影 响 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
执 行 ` docker-compose [COMMAND] --help ` 或 者 ` docker-compose help [COMMAND] ` 可 以 查 看 具 体 某 个 命 令 的 使 用 格 式 。
2015-05-08 20:10:01 +08:00
2017-11-26 09:54:04 +08:00
` docker-compose ` 命 令 的 基 本 的 使 用 格 式 是
2016-12-20 15:35:52 +08:00
2017-11-23 15:48:52 +08:00
` ` ` bash
2016-12-20 15:35:52 +08:00
docker - compose [ - f = < arg > ... ] [ options ] [ COMMAND ] [ ARGS ... ]
2015-05-08 20:10:01 +08:00
` ` `
2019-11-05 23:35:43 +08:00
# # 命 令 选 项
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
* ` -f, --file FILE ` 指 定 使 用 的 Compose 模 板 文 件 , 默 认 为 ` docker-compose.yml ` , 可 以 多 次 指 定 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -p, --project-name NAME ` 指 定 项 目 名 称 , 默 认 将 使 用 所 在 目 录 名 称 作 为 项 目 名 。
2017-11-23 15:48:52 +08:00
2015-05-08 20:10:01 +08:00
* ` --verbose ` 输 出 更 多 调 试 信 息 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -v, --version ` 打 印 版 本 并 退 出 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # 命 令 使 用 说 明
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` build `
2017-11-23 22:08:41 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose build [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
构 建 ( 重 新 构 建 ) 项 目 中 的 服 务 容 器 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
服 务 容 器 一 旦 构 建 后 , 将 会 带 上 一 个 标 记 名 , 例 如 对 于 web 项 目 中 的 一 个 db 容 器 , 可 能 是 web_db 。
2015-05-08 20:10:01 +08:00
可 以 随 时 在 项 目 目 录 下 运 行 ` docker-compose build ` 来 重 新 构 建 服 务 。
2016-12-20 15:35:52 +08:00
选 项 包 括 :
* ` --force-rm ` 删 除 构 建 过 程 中 的 临 时 容 器 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-cache ` 构 建 镜 像 过 程 中 不 使 用 cache ( 这 将 加 长 构 建 过 程 ) 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --pull ` 始 终 尝 试 通 过 pull 来 获 取 更 新 版 本 的 镜 像 。
2019-11-05 23:35:43 +08:00
# # # ` config `
2017-11-23 22:08:41 +08:00
验 证 Compose 文 件 格 式 是 否 正 确 , 若 正 确 则 显 示 配 置 , 若 格 式 错 误 显 示 错 误 原 因 。
2019-11-05 23:35:43 +08:00
# # # ` down `
2017-11-23 22:08:41 +08:00
此 命 令 将 会 停 止 ` up ` 命 令 所 启 动 的 容 器 , 并 移 除 网 络
2019-11-05 23:35:43 +08:00
# # # ` exec `
2017-11-23 22:08:41 +08:00
进 入 指 定 的 容 器 。
2019-11-05 23:35:43 +08:00
# # # ` help `
2015-05-08 20:10:01 +08:00
获 得 一 个 命 令 的 帮 助 。
2019-11-05 23:35:43 +08:00
# # # ` images `
2017-11-23 22:08:41 +08:00
列 出 Compose 文 件 中 包 含 的 镜 像 。
2019-11-05 23:35:43 +08:00
# # # ` kill `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose kill [options] [SERVICE...] ` 。
通 过 发 送 ` SIGKILL ` 信 号 来 强 制 停 止 服 务 容 器 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
支 持 通 过 ` -s ` 参 数 来 指 定 发 送 的 信 号 , 例 如 通 过 如 下 指 令 发 送 ` SIGINT ` 信 号 。
2017-11-23 15:48:52 +08:00
` ` ` bash
2015-05-08 20:10:01 +08:00
$ docker - compose kill - s SIGINT
` ` `
2019-11-05 23:35:43 +08:00
# # # ` logs `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose logs [options] [SERVICE...] ` 。
查 看 服 务 容 器 的 输 出 。 默 认 情 况 下 , docker - compose 将 对 不 同 的 服 务 输 出 使 用 不 同 的 颜 色 来 区 分 。 可 以 通 过 ` --no-color ` 来 关 闭 颜 色 。
该 命 令 在 调 试 问 题 的 时 候 十 分 有 用 。
2019-11-05 23:35:43 +08:00
# # # ` pause `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose pause [SERVICE...] ` 。
暂 停 一 个 服 务 容 器 。
2019-11-05 23:35:43 +08:00
# # # ` port `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose port [options] SERVICE PRIVATE_PORT ` 。
打 印 某 个 容 器 端 口 所 映 射 的 公 共 端 口 。
选 项 :
* ` --protocol=proto ` 指 定 端 口 协 议 , tcp ( 默 认 值 ) 或 者 udp 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --index=index ` 如 果 同 一 服 务 存 在 多 个 容 器 , 指 定 命 令 对 象 容 器 的 序 号 ( 默 认 为 1 ) 。
2019-11-05 23:35:43 +08:00
# # # ` ps `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose ps [options] [SERVICE...] ` 。
列 出 项 目 中 目 前 的 所 有 容 器 。
选 项 :
2015-05-08 20:10:01 +08:00
2017-11-23 15:48:52 +08:00
* ` -q ` 只 打 印 容 器 的 ID 信 息 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` pull `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose pull [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
拉 取 服 务 依 赖 的 镜 像 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
选 项 :
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
* ` --ignore-pull-failures ` 忽 略 拉 取 镜 像 过 程 中 的 错 误 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` push `
2017-11-23 22:08:41 +08:00
2017-11-23 23:38:05 +08:00
推 送 服 务 依 赖 的 镜 像 到 Docker 镜 像 仓 库 。
2017-11-23 22:08:41 +08:00
2019-11-05 23:35:43 +08:00
# # # ` restart `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose restart [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
重 启 项 目 中 的 服 务 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
选 项 :
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
* ` -t, --timeout TIMEOUT ` 指 定 重 启 前 停 止 容 器 的 超 时 ( 默 认 为 10 秒 ) 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` rm `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose rm [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
删 除 所 有 ( 停 止 状 态 的 ) 服 务 容 器 。 推 荐 先 执 行 ` docker-compose stop ` 命 令 来 停 止 容 器 。
选 项 :
* ` -f, --force ` 强 制 直 接 删 除 , 包 括 非 停 止 状 态 的 容 器 。 一 般 尽 量 不 要 使 用 该 选 项 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -v ` 删 除 容 器 所 挂 载 的 数 据 卷 。
2019-11-05 23:35:43 +08:00
# # # ` run `
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...] ` 。
在 指 定 服 务 上 执 行 一 个 命 令 。
2015-05-08 20:10:01 +08:00
例 如 :
2017-11-23 15:48:52 +08:00
` ` ` bash
2015-05-08 20:10:01 +08:00
$ docker - compose run ubuntu ping docker . com
` ` `
2016-12-20 15:35:52 +08:00
将 会 启 动 一 个 ubuntu 服 务 容 器 , 并 执 行 ` ping docker.com ` 命 令 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
默 认 情 况 下 , 如 果 存 在 关 联 , 则 所 有 关 联 的 服 务 将 会 自 动 被 启 动 , 除 非 这 些 服 务 已 经 在 运 行 中 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
该 命 令 类 似 启 动 容 器 后 运 行 指 定 的 命 令 , 相 关 卷 、 链 接 等 等 都 将 会 按 照 配 置 自 动 创 建 。
2015-05-08 20:10:01 +08:00
两 个 不 同 点 :
2016-12-20 15:35:52 +08:00
2015-05-08 20:10:01 +08:00
* 给 定 命 令 将 会 覆 盖 原 有 的 自 动 运 行 命 令 ;
2017-11-23 15:48:52 +08:00
2015-05-08 20:10:01 +08:00
* 不 会 自 动 创 建 端 口 , 以 避 免 冲 突 。
如 果 不 希 望 自 动 启 动 关 联 的 容 器 , 可 以 使 用 ` --no-deps ` 选 项 , 例 如
2017-11-23 15:48:52 +08:00
` ` ` bash
2015-05-08 20:10:01 +08:00
$ docker - compose run -- no - deps web python manage . py shell
` ` `
将 不 会 启 动 web 容 器 所 关 联 的 其 它 容 器 。
2016-12-20 15:35:52 +08:00
选 项 :
* ` -d ` 后 台 运 行 容 器 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --name NAME ` 为 容 器 指 定 一 个 名 字 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --entrypoint CMD ` 覆 盖 默 认 的 容 器 启 动 指 令 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -e KEY=VAL ` 设 置 环 境 变 量 值 , 可 多 次 使 用 选 项 来 设 置 多 个 环 境 变 量 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -u, --user="" ` 指 定 运 行 容 器 的 用 户 名 或 者 uid 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-deps ` 不 自 动 启 动 关 联 的 服 务 容 器 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --rm ` 运 行 命 令 后 自 动 删 除 容 器 , ` d ` 模 式 下 将 忽 略 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -p, --publish=[] ` 映 射 容 器 端 口 到 本 地 主 机 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --service-ports ` 配 置 服 务 端 口 并 映 射 到 本 地 主 机 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -T ` 不 分 配 伪 tty , 意 味 着 依 赖 tty 的 指 令 将 无 法 运 行 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` scale `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose scale [options] [SERVICE=NUM...] ` 。
设 置 指 定 服 务 运 行 的 容 器 个 数 。
2015-05-08 20:10:01 +08:00
通 过 ` service=num ` 的 参 数 来 设 置 数 量 。 例 如 :
2017-11-23 15:48:52 +08:00
` ` ` bash
2016-12-20 15:35:52 +08:00
$ docker - compose scale web = 3 db = 2
2015-05-08 20:10:01 +08:00
` ` `
2016-12-20 15:35:52 +08:00
将 启 动 3 个 容 器 运 行 web 服 务 , 2 个 容 器 运 行 db 服 务 。
一 般 的 , 当 指 定 数 目 多 于 该 服 务 当 前 实 际 运 行 容 器 , 将 新 创 建 并 启 动 容 器 ; 反 之 , 将 停 止 容 器 。
选 项 :
* ` -t, --timeout TIMEOUT ` 停 止 容 器 时 候 的 超 时 ( 默 认 为 10 秒 ) 。
2019-11-05 23:35:43 +08:00
# # # ` start `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose start [SERVICE...] ` 。
启 动 已 经 存 在 的 服 务 容 器 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` stop `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose stop [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
停 止 已 经 处 于 运 行 状 态 的 容 器 , 但 不 删 除 它 。 通 过 ` docker-compose start ` 可 以 再 次 启 动 这 些 容 器 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
选 项 :
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
* ` -t, --timeout TIMEOUT ` 停 止 容 器 时 候 的 超 时 ( 默 认 为 10 秒 ) 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` top `
2017-11-23 22:08:41 +08:00
查 看 各 个 服 务 容 器 内 运 行 的 进 程 。
2019-11-05 23:35:43 +08:00
# # # ` unpause `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose unpause [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
恢 复 处 于 暂 停 状 态 中 的 服 务 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` up `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose up [options] [SERVICE...] ` 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
该 命 令 十 分 强 大 , 它 将 尝 试 自 动 完 成 包 括 构 建 镜 像 , ( 重 新 ) 创 建 服 务 , 启 动 服 务 , 并 关 联 服 务 相 关 容 器 的 一 系 列 操 作 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
链 接 的 服 务 都 将 会 被 自 动 启 动 , 除 非 已 经 处 于 运 行 状 态 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
可 以 说 , 大 部 分 时 候 都 可 以 直 接 通 过 该 命 令 来 启 动 一 个 项 目 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
默 认 情 况 , ` docker-compose up ` 启 动 的 容 器 都 在 前 台 , 控 制 台 将 会 同 时 打 印 所 有 容 器 的 输 出 信 息 , 可 以 很 方 便 进 行 调 试 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
当 通 过 ` Ctrl-C ` 停 止 命 令 时 , 所 有 容 器 将 会 停 止 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
如 果 使 用 ` docker-compose up -d ` , 将 会 在 后 台 启 动 并 运 行 所 有 的 容 器 。 一 般 推 荐 生 产 环 境 下 使 用 该 选 项 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
默 认 情 况 , 如 果 服 务 容 器 已 经 存 在 , ` docker-compose up ` 将 会 尝 试 停 止 容 器 , 然 后 重 新 创 建 ( 保 持 使 用 ` volumes-from ` 挂 载 的 卷 ) , 以 保 证 新 启 动 的 服 务 匹 配 ` docker-compose.yml ` 文 件 的 最 新 内 容 。 如 果 用 户 不 希 望 容 器 被 停 止 并 重 新 创 建 , 可 以 使 用 ` docker-compose up --no-recreate ` 。 这 样 将 只 会 启 动 处 于 停 止 状 态 的 容 器 , 而 忽 略 已 经 运 行 的 服 务 。 如 果 用 户 只 想 重 新 部 署 某 个 服 务 , 可 以 使 用 ` docker-compose up --no-deps -d <SERVICE_NAME> ` 来 重 新 创 建 服 务 并 后 台 停 止 旧 服 务 , 启 动 新 服 务 , 并 不 会 影 响 到 其 所 依 赖 的 服 务 。
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
选 项 :
2015-05-08 20:10:01 +08:00
2016-12-20 15:35:52 +08:00
* ` -d ` 在 后 台 运 行 服 务 容 器 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-color ` 不 使 用 颜 色 来 区 分 不 同 的 服 务 的 控 制 台 输 出 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-deps ` 不 启 动 服 务 所 链 接 的 容 器 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --force-recreate ` 强 制 重 新 创 建 容 器 , 不 能 与 ` --no-recreate ` 同 时 使 用 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-recreate ` 如 果 容 器 已 经 存 在 了 , 则 不 重 新 创 建 , 不 能 与 ` --force-recreate ` 同 时 使 用 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` --no-build ` 不 自 动 构 建 缺 失 的 服 务 镜 像 。
2017-11-23 15:48:52 +08:00
2016-12-20 15:35:52 +08:00
* ` -t, --timeout TIMEOUT ` 停 止 容 器 时 候 的 超 时 ( 默 认 为 10 秒 ) 。
2015-05-08 20:10:01 +08:00
2019-11-05 23:35:43 +08:00
# # # ` version `
2019-09-01 14:46:33 +08:00
2016-12-20 15:35:52 +08:00
格 式 为 ` docker-compose version ` 。
2015-05-08 20:10:01 +08:00
2017-11-23 15:48:52 +08:00
打 印 版 本 信 息 。
2019-09-01 14:46:33 +08:00
2019-11-05 23:35:43 +08:00
# # 参 考 资 料
2019-09-01 14:46:33 +08:00
* [ 官 方 文 档 ] ( https : //docs.docker.com/compose/reference/overview/)