docker-compose build [options] [–build-arg key=val…] [SERVICE…]
构建(重新构建)项目中的服务容器。
选项包括:
--compress 通过gzip压缩构建上下环境
--force-rm 删除构建过程中的临时容器
--no-cache 构建镜像过程中不使用缓存
--pull 始终尝试通过拉取操作来获取更新版本的镜像
-m, --memory MEM为构建的容器设置内存大小
--build-arg key=val为服务设置build-time变量
--parallel并行构建映像。
构建服务一次,然后对其进行标记,默认情况下为project_service。例如,composetest_db。如果“compose”文件指定了 镜像名称,则会使用该名称标记镜像,并预先替换任何变量
docker-compose config [options]
验证并查看compose文件配置。
选项包括:
--resolve-image-digests 将镜像标签标记为摘要
--no-interpolate 不要插入环境变量。
-q, --quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
--services 打印服务名称,每行一个。
--volumes 打印数据券名称,每行一个。
--hash="*" 打印服务配置散列,每行一个。为指定服务的列表设置 “service1,service2”或使用通配符来显示所有服务
docker-compose create [options] [SERVICE…]
为服务创建容器。
选项包括:
--force-recreate:重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数
--no-recreate:如果容器已经存在,不需要重新创建,不兼容–force-recreate参数
--no-build:不创建镜像,即使缺失
--build:创建容器前,生成镜像
docker-compose down [options]
停止和删除容器、网络、卷、镜像。
选项包括:
--rmi type,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像
-v, --volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷
--remove-orphans,删除服务中没有在compose中定义的容器
-t, --timeout 指定关机超时(以秒为单位)。(默认值:10)
docker-compose down
停止容器并删除由创建的容器,网络,卷和映像up。
默认情况下,删除的唯一内容是:
在Compose文件中定义的服务的容器
networks在撰写文件的部分中定义的网络
默认网络(如果已使用)
定义为的网络和卷external永远不会删除。
docker-compose events [options] [SERVICE…]
选项包括:
--json 将事件输出为json对象流
使用该–json标志时,每行将打印一个json对象,其格式为:
{
“time”: “2015-11-20T18:01:03.615550”,
“type”: “container”,
“action”: “create”,
“id”: “213cf7…5fc39a”,
“service”: “web”,
“attributes”: {
“name”: “application_web_1”,
“image”: “alpine:edge”
}
}
docker-compose exec [options] SERVICE COMMAND [ARGS…]
这等于docker exec。使用此子命令,您可以在服务中运行任意命令。默认情况下,命令是分配TTY的,因此您可以使用命令docker-compose exec web sh来获得交互式提示。
选项包括:
-d, --detach ,分离模式,后台运行命令。
--privileged ,获取特权。
-u, --user USER ,指定运行的用户。
-T 禁用分配TTY,默认docker-compose exec分配TTY。
--index=index,当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器
-e, --env KEY=VAL ,设置环境变量(可多次使用,API < 1.25不支持)
-w, --workdir ,指向此命令的workdir目录的路径。
docker-compose kill [options] [SERVICE…]
选项包括:
-s SIGNAL ,向容器发出信号。默认信号是SIGKILL。
通过发送SIGKILL信号来强制停止服务容器。
支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号:
docker-compose kill -s SIGINT
docker-compose logs [options] [SERVICE…]
查看服务容器的输出。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过–no-color来关闭颜色。
选项包括:
--no-color ,单色输出
-f, --follow ,日志输入
-t, --timestamps ,显示时间戳
--tail="all" , 从日志末尾显示的行数为每个容器
docker-compose pause [SERVICE…]
暂停正在运行的服务容器
docker-compose port [options] SERVICE PRIVATE_PORT
显示某个容器端口所映射的公共端口。
选项包括:
--protocol=proto,指定端口协议,TCP(默认值)
--index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1)
docker-compose ps [options] [SERVICE…]
选项包括:
-q, --quiet ,只显示id
--services ,显示服务
--filter KEY=VAL ,根据属性筛选服务
-a, --all ,显示所有已停止的容器(包括run命令创建的容器)
docker-compose pull [options] [SERVICE…]
拉取服务依赖的镜像。
选项包括:
--ignore-pull-failures ,忽略拉取镜像过程中的错误
--parallel ,多个镜像同时拉取
--no-parallel ,禁止同时拉取多个
-q, --quiet , 拉取镜像过程中不打印进度信息
--include-deps ,可以将服务声明为依赖项
docker-compose push [options] [SERVICE…]
推送服务依的镜像。
选项包括:
--ignore-push-failures ,忽略推送镜像过程中的错误
docker-compose restart [options] [SERVICE…]
重启项目中的服务。
选项包括:
-t,--timeout TIMEOUT,指定重启前停止容器的超时(默认为10秒)
docker-compose restart
重新启动所有已停止并正在运行的服务。
如果对docker-compose.yml配置进行更改,则运行此命令后不会反映这些更改。
例如,重新启动后不会更新对环境变量的更改(在构建容器之后但在执行容器的命令之前添加)。
docker-compose rm [options] [SERVICE…]
选项包括:
-f, --force ,强制直接删除,包括非停止状态的容器
-s, --stop ,如果需要,在删除之前,停止容器
-v ,删除任何附加到容器的匿名卷
删除停止的服务容器。
默认情况下,不删除附加到容器的匿名卷。您可以使用来覆盖它-v。要列出所有卷,请使用docker volume ls。
任何不在卷中的数据都将丢失。
不带任何选项运行命令还会删除由docker-compose up或创建的一次性容器docker-compose run
docker-compose run [options] [-v VOLUME…] [-p PORT…] [-e KEY=VAL…] [-l KEY=VALUE…]
SERVICE [COMMAND] [ARGS…]
选项包括:
-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运行”分配一个遥控。
-w, --workdir="" ,容器内的工作目录
针对服务运行一次性命令。例如,以下命令启动web服务并bash作为其命令运行。
docker-compose run web bash
您与run start一起使用的命令在新容器中启动,该容器具有由服务的配置定义的配置,包括卷,链接和其他详细信息。但是,有两个重要区别。
首先,传递的命令将run覆盖服务配置中定义的命令。例如,如果 web服务配置以开头bash,则用docker-compose run web python app.py覆盖它python app.py。
第二个区别是该docker-compose run命令不会创建服务配置中指定的任何端口。这样可以防止端口与已经打开的端口发生冲突。如果确实要创建服务的端口并将其映射到主机,请指定–service-ports标志:
docker-compose run --service-ports web python manage.py shell
另外,可以使用–publish或-p选项指定手动端口映射,就像使用时一样docker run:
docker-compose run --publish 8080:80 -p 2022:22 -p 127.0.0.1:2021:21 web python manage.py shell
如果启动使用链接配置的服务,则该run命令首先检查链接服务是否正在运行,并在停止时启动该服务。一旦所有链接的服务都在运行,则runexec将执行您传递的命令。例如,您可以运行:
docker-compose run db psql -h db -U docker
这将为链接的db容器打开一个交互式PostgreSQL shell 。
如果您不希望run命令启动链接的容器,请使用–no-deps标志:
docker-compose run --no-deps web python manage.py shell
如果要在覆盖容器的重新启动策略的同时运行后除去该容器,请使用–rm标志:
docker-compose run --rm web python manage.py db upgrade
这将运行数据库升级脚本,并在完成运行后删除容器,即使在服务配置中指定了重新启动策略也是如此。
不推荐使用此命令。请使用带有标志的up命令 --scale。请注意,up与–scale标志一起使用与命令有一些细微的差异scale,因为它包含了up命令的行为。
docker-compose scale [options] [SERVICE=NUM…]
设置指定服务运行的容器个数。
数字以形式指定为参数service=num。例如:
docker-compose scale web=2 worker=3
docker-compose start [SERVICE…]
docker-compose start
启动已经存在的服务容器。
docker-compose stop [options] [SERVICE…]
选项包括:
-t, --timeout TIMEOUT ,指定关机超时(以秒为单位)。(默认值:10)
停止运行容器而不删除它们。可以从重新开始 docker-compose start
docker-compose top
显示正在运行的进程。
docker-compose unpause [SERVICE…]
取消暂停已暂停的服务容器。
docker-compose up [options] [–scale SERVICE=NUM…] [SERVICE…]
选项包括:
-d, --detach ,在后台运行服务容器
--no-color ,不使用颜色来区分不同的服务的控制输出
--quiet-pull ,拉取镜像过程中不打印进度信息
--no-deps ,不启动服务所链接的容器
--force-recreate ,强制重新创建容器,不能与–no-recreate同时使用
--always-recreate-deps ,创建容器的依赖
--no-recreate ,如果容器已经存在,则不重新创建,不能与–force-recreate同时使用
--no-build ,不自动构建缺失的服务镜像
--no-start ,不要在创建服务之后再启动它们。
--build ,在启动容器前构建服务镜像
--abort-on-container-exit ,停止所有容器,如果任何一个容器被停止,不能与-d同时使用
-t, --timeout TIMEOUT ,停止容器时候的超时(默认为10秒)
-V, --renew-anon-volumes ,重新创建匿名卷,而不是检索
--remove-orphans ,删除服务中没有在compose文件中定义的容器
--exit-code-from SERVICE ,返回所选服务的退出码容器
–scale SERVICE=NUM ,设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数
docker-compose up
启动所有服务
docker-compose up -d
构建,(重新)创建,启动并附加到服务的容器。
除非它们已经在运行,否则此命令还将启动所有链接的服务。
该docker-compose up命令汇总每个容器的输出(本质上是docker-compose logs -f)。当命令退出时,所有容器都将停止。运行docker-compose up -d 将在后台启动容器并使它们继续运行。
如果已有用于服务的容器,并且在创建容器后更改了服务的配置或映像,请docker-compose up通过停止并重新创建容器(保留装入的卷)来获取更改。为防止Compose获取更改,请使用该–no-recreate 标志。
如果要强制Compose停止并重新创建所有容器,请使用该 --force-recreate标志。
如果进程遇到错误,则此命令的退出代码为1。
如果使用SIGINT(ctrl+ C)或中断该过程SIGTERM,则容器将停止,并且退出代码为0。
如果在此关闭阶段再次发送SIGINT或,SIGTERM则会终止正在运行的容器,并且退出代码为2
在后台所有启动服务
-f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d