网站Logo Ilren 小记

Docker-Compose简介

jack
6
2022-02-01

Docker-Compose简介

    Docker-Compose 项目是 Docker 官方的开源项目,使用 Python 编写而成,负责实现对 Docker 容器集群的快速编排。Docker-Compose 的工程配置文件名是默认为 docker-compose.yml 的,在整个文件中,我们可以通过环境变量COMPOSE_FILE或者-f参数来对配置进行定义。

Docker-Compose基本命令

Docker-Compose版本:1.25.5

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             指定一个使用的compose文件(默认:docker-compose.yml)
  -p, --project-name NAME     指定一个项目名称(默认:当前文件夹名称)
  --verbose                   显示更多输出
  --log-level LEVEL           设置日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  --no-ansi                   不打印ANSI控制字符
  -v, --version               打印版本并推出
  -H, --host HOST             要连接到的守护进程

  --tls                       使用 TLS; 包含 --tlsverify
  --tlscacert CA_PATH         仅由此CA签署的信任证书
  --tlscert CLIENT_CERT_PATH  TLS证书文件的路径
  --tlskey TLS_KEY_PATH       TLS密钥文件的路径
  --tlsverify                 使用TLS并验证远程
  --skip-hostname-check       不根据客户端证书中指定的名称检查守护程序的主机名
  --project-directory PATH    指定备用工作目录(默认:当前Compose文件路径)
  --compatibility             如果设置,Compose将尝试将v3文件中的密钥转换为它们的非Swarm等价密钥
  --env-file PATH             指定环境文件路径

Commands:
  build              构建或者重新构建服务
  config             验证和查看compose文件
  create             创建服务
  down               停止并删除容器、网络、镜像和卷
  events             从容器接收实时事件
  exec               在正在运行的容器中执行命令
  help               获取命令帮助
  images             查看镜像列表
  kill               强制停止容器
  logs               查看容器输出日志
  pause              暂停服务
  port               打印端口绑定的公共端口
  ps                 查看容器
  pull               拉取服务镜像
  push               推送服务景象
  restart            重启服务
  rm                 删除暂停的容器
  run                运行一次性命令
  scale              设置服务的容器数
  start              开启服务
  stop               停止服务
  top                显示正在运行的进程
  unpause            恢复暂停的服务
  up                 创建并启动容器
  version            显示Docker-Compose版本信息
1.docker-compose build
docker-compose build [options] [--build-arg key=val...] [SERVICE...]

Options:

--build-arg key=val     为服务设置生成时变量。
--compress              使用gzip压缩构建上下文。
--force-rm              Always remove intermediate containers。
-m, --memory MEM        始终移除中间容器。
--no-cache              构建镜像时不使用缓存。
--no-rm                 镜像构建成功后不删除中间容器。
--parallel              并行构建景象。
--progress string       设置进度输出类型 (auto, plain, tty)。
--pull                  总是尝试拉取最新版本的镜像。
-q, --quiet             不在STDOUT打印任何东西

服务容器一旦构建后,将会带上一个标记名。可以随时在项目目录下运行docker-compose build来重新构建服务。

2.docker-compose config
docker-compose config [options]

options:

--resolve-image-digests  将镜像标记为摘要。
--no-interpolate         不插入环境变量。
-q, --quiet              只验证配置,不输出。当配置正确,不输出任何内容,当配置文件错误,输出错误信息。
--services               打印服务名,一行一个。
--volumes                打印数据卷名,一行一个。
--hash="*"               打印服务配置hash,一行一个。
                         为指定服务的列表设置“service1,service2”,或使用通配符显示所有服务
3.docker-compose create
docker-compose create [options] [SERVICE...]

Options:

--force-recreate       即使容器的配置和镜像没有改变,也要重新创建容器。不兼容 --no-recreate.
--no-recreate          如果容器存在,不重新创建。不兼容 --force-recreate。
--no-build             不构建镜像,即使缺失。
--build                创建容器前,构建镜像。
4.docker-compose down
docker-compose down [options]

Options:

--rmi type              R删除镜像,类型必须是:
                          'all': 删除compose文件中定义的所有镜像;
                          'local': 删除镜像名为空的镜像。
-v, --volumes           删除已经在compose文件中定义的和匿名的附在容器上的数据卷
--remove-orphans        删除服务中没有在compose中定义的容器
-t, --timeout TIMEOUT   指定关闭超时时间(默认:10s)

docker-compose down 停用移除所有容器以及网络相关–最常用的格式

5.docker-compose events

docker-compose events [options] [SERVICE...]

Options:

--json      将事件输出为json对象流

6.docker-compose exec

docker-compose exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]

Options:

-d, --detach      分离模式:在后台运行命令。
--privileged      授予进程扩展权限。
-u, --user USER   指定用户身份运行命令。
-T                禁用pseudo-tty分配. 默认情况下 `docker-compose exec`分配TTY。
--index=index     如果有多个服务实例,则指定容器索引[默认: 1]。
-e, --env KEY=VAL 设置环境变量 (可多次使用,不支持 API < 1.25)
-w, --workdir DIR 此命令的工作目录路径

7.docker-compose help

docker-compose help [COMMAND]

docker-compose help build 查看build指令的帮助

8.docker-compose images

docker-compose images [options] [SERVICE...]

Options:

-q, --quiet  只显示镜像ID

docker-compose images 查看当前yml中所有容器镜像信息

9.docker-compose kill

docker-compose kill [options] [SERVICE...]

Options:

-s SIGNAL  向容器发送信号. 默认是SIGKILL。

docker-compose kill -s SIGINT 通过发送 SIGKILL 信号来强制停止服务容器,支持通过参数来指定发送的信号。

10.docker-compose logs

docker-compose logs [options] [SERVICE...]

Options:

--no-color          单色输出。
-f, --follow        实时显示日志输出。
-t, --timestamps    显示时间戳。
--tail="all"        从每个容器的日志结尾l列出显示。

11.docker-compose pause

docker-compose pause [SERVICE...]

docker-compose pause nginx 暂停yml中定义nginx服务。

12.docker-compose port
docker-compose port [options] SERVICE PRIVATE_PORT

Options:

--protocol=proto  tcp或udp [默认: tcp]。
--index=index     如果有多个容器,则指定容器索引 [默认: 1]。

13.docker-compose ps

docker-compose ps [options] [SERVICE...]

Options:

-q, --quiet          只显示ID
--services           只显示服务名
--filter KEY=VAL     按属性筛选服务
-a, --all            显示所有已停止的容器 (包括由run命令创建的容器)

14.docker-compose pull

docker-compose pull [options] [SERVICE...]

Options:

--ignore-pull-failures  忽略拉取镜像过程中的错误。
--parallel              多个镜像同时拉取。
--no-parallel           不允许多个镜像同事拉取。
-q, --quiet             拉取镜像不打印进度信息。
--include-deps          同时拉取声明为依赖项的服务。

15.docker-compose push

docker-compose push [options] [SERVICE...]

Options:

--ignore-push-failures  忽略推送过程中的错误。

16.docker-compose restart

docker-compose restart [options] [SERVICE...]

Options:

-t, --timeout TIMEOUT      指定超时关闭时间(默认:10s)。

17.docker-compose rm

docker-compose rm [options] [SERVICE...]

Options:

-f, --force   不要求确认删除(强制删除)。
-s, --stop    如果有必要,在删除之前先停止容器。
-v            删除添加到容器的所有匿名卷。
-a, --all     已弃用,无效。

18.docker-compose run

docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]

Options:

-d, --detach          分离模式:在后台运行打印新的容器名称。
--name NAME           给容器指定名称。
--entrypoint CMD      覆盖镜像的入口点。
-e KEY=VAL            设置环境变量 (可多次使用)。
-l, --label KEY=VAL   添加或覆盖标签 (可多次使用)。
-u, --user=""         以指定的用户名或uid运行。
--no-deps             不启动链接服务。
--rm                  运行后移除容器,在分离模式下忽略。
-p, --publish=[]      将容器的端口映射到宿主机。
--service-ports       在启用服务端口并映射到主机的情况下运行命令。
--use-aliases         在容器连接到的网络中使用服务的网络别名。
-v, --volume=[]       绑定数据卷 (默认 [])
-T                    禁用 pseudo-tty 分配,默认情况下 `docker-compose run` 分配TTY.
-w, --workdir=""      容器内的工作目录

19.docker-compose scale

docker-compose scale [options] [SERVICE=NUM...]

Options:

-t, --timeout TIMEOUT      指定超时关闭时间(默认:10s)

20.docker-compose start

docker-compose start [SERVICE...]

docker-compose start nginx 启动yml定义的nginx服务。

21.docker-compose stop

docker-compose stop [options] [SERVICE...]

Options:

-t, --timeout TIMEOUT		指定超时关闭时间(默认:10s)

22.docker-compose top

docker-compose top [SERVICE...]

docker-compose top nginx 展示nginx容器中正在运行的进程

23.docker-compose unpause

docker-compose unpause [SERVICE...]

docker-compose unpause nginx 恢复暂停的nginx容器

24.docker-compose up

docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]

Options:

-d, --detach               分离模式:在后台运行并打印容器名称,不兼容 --abort-on-container-exit。
--no-color                 单色输出日志。
--quiet-pull               拉取不打印进度信息。
--no-deps                  不启动链接服务。
--force-recreate           即使容器的配置和镜像没有改变,也要重新创建容器。
--always-recreate-deps     重新创建依赖容器,不兼容 --no-recreate。
--no-recreate              如果容器存在,不重新创建,不兼容 --force-recreate and -V.
--no-build                 即使镜像丢失,也不重新构建。
--no-start                 创建服务不启动。
--build                    在启动容器前构建容器。
--abort-on-container-exit  如果有容器停止,则停止所有容器,不兼容 -d。
--attach-dependencies      附加到从属容器。
-t, --timeout TIMEOUT      在附加容器运行时,指定超时关闭时间(默认:10s)。
-V, --renew-anon-volumes   重新创建匿名卷,而不是从以前的容器中检索数据。
--remove-orphans           删除未在compose文件中定义的服务的容器。
--exit-code-from SERVICE   返回所选容器的退出代码,说明 --abort-on-container-exit。
--scale SERVICE=NUM        设置NUM个服务实例,覆盖compose文件中原先的scale配置。

25.docker-compose version

docker-compose version [--short]

Options:

--short     只显示Compose的版本号。
动物装饰