ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker-compose常用命令详解

2020-03-03 11:03:43  阅读:210  来源: 互联网

标签:容器 compose 服务 SERVICE 常用命令 镜像 docker


build

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”文件指定了 镜像名称,则会使用该名称标记镜像,并预先替换任何变量

config

docker-compose config [options]
验证并查看compose文件配置。
选项包括:
–resolve-image-digests 将镜像标签标记为摘要
–no-interpolate 不要插入环境变量。
-q, --quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
–services 打印服务名称,每行一个。
–volumes 打印数据券名称,每行一个。
–hash="*" 打印服务配置散列,每行一个。为指定服务的列表设置 “service1,service2”或使用通配符来显示所有服务

create

docker-compose create [options] [SERVICE…]
为服务创建容器。
选项包括:
–force-recreate:重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数
–no-recreate:如果容器已经存在,不需要重新创建,不兼容–force-recreate参数
–no-build:不创建镜像,即使缺失
–build:创建容器前,生成镜像

down

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永远不会删除。

events

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”
}
}

exec

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目录的路径。

kill

docker-compose kill [options] [SERVICE…]
选项包括:
-s SIGNAL ,向容器发出信号。默认信号是SIGKILL。
通过发送SIGKILL信号来强制停止服务容器。
支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号:
docker-compose kill -s SIGINT

logs

docker-compose logs [options] [SERVICE…]
查看服务容器的输出。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过–no-color来关闭颜色。
选项包括:
–no-color ,单色输出
-f, --follow ,日志输入
-t, --timestamps ,显示时间戳
–tail=“all” , 从日志末尾显示的行数为每个容器

pause

docker-compose pause [SERVICE…]
暂停正在运行的服务容器

port

docker-compose port [options] SERVICE PRIVATE_PORT
显示某个容器端口所映射的公共端口。
选项包括:
–protocol=proto,指定端口协议,TCP(默认值)
–index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1)

ps

docker-compose ps [options] [SERVICE…]
选项包括:
-q, --quiet ,只显示id
–services ,显示服务
–filter KEY=VAL ,根据属性筛选服务
-a, --all ,显示所有已停止的容器(包括run命令创建的容器)

pull

docker-compose pull [options] [SERVICE…]
拉取服务依赖的镜像。
选项包括:
–ignore-pull-failures ,忽略拉取镜像过程中的错误
–parallel ,多个镜像同时拉取
–no-parallel ,禁止同时拉取多个
-q, --quiet , 拉取镜像过程中不打印进度信息
–include-deps ,可以将服务声明为依赖项

push

docker-compose push [options] [SERVICE…]
推送服务依的镜像。
选项包括:
–ignore-push-failures ,忽略推送镜像过程中的错误

restart

docker-compose restart [options] [SERVICE…]
重启项目中的服务。
选项包括:
-t,–timeout TIMEOUT,指定重启前停止容器的超时(默认为10秒)

docker-compose restart

重新启动所有已停止并正在运行的服务。

如果对docker-compose.yml配置进行更改,则运行此命令后不会反映这些更改。

例如,重新启动后不会更新对环境变量的更改(在构建容器之后但在执行容器的命令之前添加)。

rm

docker-compose rm [options] [SERVICE…]
选项包括:
-f, --force ,强制直接删除,包括非停止状态的容器
-s, --stop ,如果需要,在删除之前,停止容器
-v ,删除任何附加到容器的匿名卷

删除停止的服务容器。

默认情况下,不删除附加到容器的匿名卷。您可以使用来覆盖它-v。要列出所有卷,请使用docker volume ls。

任何不在卷中的数据都将丢失。

不带任何选项运行命令还会删除由docker-compose up或创建的一次性容器docker-compose run

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

这将运行数据库升级脚本,并在完成运行后删除容器,即使在服务配置中指定了重新启动策略也是如此。

scale

不推荐使用此命令请使用带有标志的up命令 --scale。请注意,up与–scale标志一起使用与命令有一些细微的差异scale,因为它包含了up命令的行为。

docker-compose scale [options] [SERVICE=NUM…]
设置指定服务运行的容器个数。

数字以形式指定为参数service=num。例如:

docker-compose scale web=2 worker=3

start

docker-compose start [SERVICE…]
docker-compose start
启动已经存在的服务容器。

stop

docker-compose stop [options] [SERVICE…]

选项包括:
-t, --timeout TIMEOUT ,指定关机超时(以秒为单位)。(默认值:10)

停止运行容器而不删除它们。可以从重新开始 docker-compose start

top

docker-compose top

显示正在运行的进程。

unpause

docker-compose unpause [SERVICE…]

取消暂停已暂停的服务容器。

up

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

hero良 发布了34 篇原创文章 · 获赞 5 · 访问量 1691 私信 关注

标签:容器,compose,服务,SERVICE,常用命令,镜像,docker
来源: https://blog.csdn.net/zhengliangs/article/details/104626976

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有