第09篇 Compose-03 操作详解

对于Compose来说, 大部分命令的对象既可以是项目本身, 也可以指定为项目中的服务 或者容器。 如果没有特别的说明, 命令对象将是项目, 这意味着项目中所有的服务都会受到命令影响。
看考文档:https://docs.docker.com/compose/reference/overview/

compose操作

命令格式:docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
选项:

  • -f, --file FILE:指定compose模板文件,默认是当前目录下的docker-compose.yml文件;
  • -p, --project-name NAME:指定项目名称, 默认将使用所在目录名称作为项目名
  • --project-directory PATH:指定工作目录, 默认为 Compose文件所在路径
  • --verbose:输出更多调试信息
  • --log-level LEVEL:设置日志级别,取值:DEBUG, INFO, WARNING, ERROR, CRITICAL
  • -v, --version:显示版本信息
  • -H, --host HOST:指定所操作的docker服务地址
  • --tls:启动TLS,如果指定-tlsverfyi 则默认开启
  • --tlscacert CA_PATH:信任的TLSCA的证书
  • --tlscert CLIENT_CERT_PATH:客户端使用的TLS证书
  • --tlskey TLS_KEY_PATH:TLS的私钥文件路径
  • --tlsverify:使用TLS校验连接对方
  • --skip-hostname-check:不使用TLS证书校验对方的主机名

显示版本

命令:version [--short]

创建并启动服务栈

命令:up [options] [--scale SERVICE=NUM...] [SERVICE...]
选项:

  • -d, --detach:后台启动
  • --no-color:不显示颜色输出
  • --quiet-pull:拉取镜像不打印日志
  • --no-deps:不启动连接的服务
  • --force-recreate:强制重新创建容器,不能与–no-recreate同时使用
  • --always-recreate-deps:重新创建依赖的容器,不能与–no-recreate同时使用
  • --no-recreate:如果容器已经存在,就不创建了
  • --no-build:不自动构建缺失的服务镜像;
  • --no-start:床架服务后不启动他们
  • --build:启动容器前先构建
  • --abort-on-container-exit:当有容器停止时中止整个服务, 与 -d 选项冲突
  • -t, --timeout TIMEOUT:停止容器时候的超时(默认为 10 秒), 与 -d 选项冲突
  • -V, --renew-anon-volume:重新创建匿名数据卷
  • --remove-orphans: 删除服务中未定义的孤儿容器
  • --exit-code-from SERVICE:退出时返回指定服务容器的退出符
  • --scale SERVICE=NUM:扩展指定服务实例到指定数

该命令十分强大,它将尝试 自动完成包括构建镜像,(重新)创建服务,启动服务,并关
联服务相关容器的一系列操作
链接的服务都将会被自动启动,除非已经处千运行状态。可以说,大部分时候都可以直接通过该命令来 启动一个项目。
docker-compose up 启动的容器都在前台,控制台将会同时打印所有容
器的输出信息,可以很方便进行调试。
当通过Ctrl-C停止命令时, 所有容器将会停止
如果使用docker-compose up -d, 将会在后台启动并运行所有的容器。 一般推荐生
产环境下使用该选项。
默认情况,如果服务容器已经存在,docker-compose up 将会尝试停止容器,然 后重新创建 (保待使用volumes-from挂载的卷),以保证新启动的服务匹配docker­ compose.yml文件的最新内容。 如果用户不希望容器被停止并重新创建,可以使用 docker-compose up --no-recrea七e。 这样将只会启动处千停止状态的容器,而忽 略已经运行的服务。 如果用户只想重新部署某个服务,可以使用docker-compose up --no-deps -d <SERVICE_NAME>来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。

停止服务栈

命令:down [options]
选项:

  • --rmi type:指定删除镜像的类型, 包括all (所有镜像),local (仅本地);
  • -v, --volumes:删除挂载数据卷;
  • --remove-orphans:清除孤儿容器,即未在Compose服务中定义的容器;
  • -t, --timeout TIMEOUT:指定超时时间,默认为10s。

停止服务栈,并删除相关资源, 包括容器、 挂载卷、 网络、 创建镜像等。 默认情况下只清除所创建的容器和网络资源

构建项目中的服务容器

命令:build [options] [--build-arg key=val...] [SERVICE...]
选项:

  • --compress:使用zip压缩上下文
  • --force-rm:删除构建过程中的临时容器
  • --no-cache:构建过程中不使用cache,这会加长构建过程
  • --pull:始终尝试通过pull来获取更新版本的镜像
  • -m, --memory MEM:指定创建服务所使用的内存限制
  • --build-arg key=val:指定服务创建时的参数
  • --parallel:并行构建

服务容器一旦构建后, 将会带上一个标记名, 例如对于 composetest项目中的一个 web容器, 通常是composetest_web;

创建可分发配置包

命令:bundle [options]
选项:

  • --push-images:自动推送镜像到仓库
  • -o, --output PATH:配置包的导出路径,默认为项目名.dab
    创建一个可分发(Distributed Application Bundle, DAB)的配置包, 包括整个服务栈的
    所有数据, 他人可以利用该文件启动服务栈。

启动服务容器

命令:start [SERVICE...]

停止服务容器

命令:stop [options] [SERVICE...]

暂停服务容器

命令:pause [SERVICE...]

恢复暂停服务

命令:unpause [SERVICE...]

强制停止服务容器

命令:kill [options] [SERVICE...]
选项:

  • -s SIGNAL:指定信号,默认是SIGKILL

这个命令会通过发送SIGKILL信号来强制停止服务容器

显示运行的容器进程信息

命令:top [SERVICE...]

显示服务日志

命令:logs [options] [SERVICE...]
选项:

  • --no-color:关闭颜色输出
  • -f, --follow:持续跟踪输出日志消息
  • -t, --timestamps:显示时间戳
  • --tail="all":仅显示指定行数的最新日志消息

查看配置

命令:config [options]
选项:

  • --resolve-image-digests:为镜像添加对应的摘要信息;
  • -q, --quiet:只检验格式正确与否, 不输出内容
  • --services:打印出Compose中所有的服务信息;
  • -volumes:打印出Compose中所有的挂载卷信息;

在服务中运行命令

命令:exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]
选项:

  • -d, --detach:在后台运行命令
  • --privileged:以特权角色运行命令
  • -u, --user USER:使用指定用户运行命令
  • -T:默认情况下会打开
  • --index=index:当服务有多个容器实例时指定容器索引,默认为第一 个
  • -e, --env KEY=VAL:设置环境变量
  • -w, --workdir:设置命令的工作目录

显示创建的镜像

命令:images [options] [SERVICE...]
选项:

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

查看端口映射

命令:port [options] SERVICE PRIVATE_PORT
选项:

  • --protocol=proto:协议,tcp或者是udp,默认tcp
  • --index=index:如果同一服务存在多个容器, 指定命令对象容器的序号(默认为1)

列出项目运行容器

命令:ps [options] [SERVICE...]
选项:

  • -q, --quiet:只显示容器ID
  • --services:显示容器名

拉取服务依赖镜像

命令:pull [options] [SERVICE...]
选项:

  • --ignore-pull-failures:忽略拉取镜像过程中的错误
  • --no-parallel:不并行拉取,默认是并行的
  • -q, --quiet:不打印拉取过程信息
  • --include-deps:同时拉取依赖的镜像

推送服务镜像

命令:push [options] [SERVICE...]
选项:

  • --ignore-push-failures:忽略错误

重启服务

命令:restart [options] [SERVICE...]
选项:

  • -t, --timeout TIMEOUT:超时时间,默认10秒

删除容器服务

命令:rm [options] [SERVICE...]
选项:

  • -f, --force:强制删除,不需要确认
  • -s, --stop:在删除容器前先停止
  • -v:删除容器所挂载的数据卷

在服务上执行命令

命令: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="":指定用户
  • --no-deps:不自动启动关联容器
  • --rm:运行之后删除容器
  • -p, --publish=[]:映射容器端口到本地主机
  • --service-ports:配置服务端口并映射到本地主机
  • -v, --volume=[]:绑定数据卷
  • -T:不分配伪tty, 意味着依赖tty的指令将无法运行。
  • -w, --workdir="":指定容器内的工作目录

设置服务运行的容器个数

命令:scale [options] [SERVICE=NUM...]
选项:

  • -t, --timeout TIMEOUT:超时时间

监控容器事件

命令: events [options] [SERVICE...]
选项:

  • --json:以json格式输出

这个命令实时监控容器的事件信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值