docker-compose常用命令详解

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker-compose常用命令详解 的相关文章

  • 将python程序打包成exe可执行文件

    方法一 xff1a xff1a 打包完成后可以直接被他人使用 xff0c 他人不用安装python环境的 可以使用pyinstaller模块实现将python项目打包成exe执行文件 span class token triple quot
  • latex 如何在overleaf中插入算法伪代码

    问题描述 博主今天在用overleaf写论文 xff0c 急需插入伪代码 xff0c 将查阅结果记录在此以便后续参考 解决方案 overleaf有专门的说明文档来教大家如何正确插入伪代码 xff1a https www overleaf c
  • 手把手教你一整套R语言数据分析+建模流程

    手把手教你一整套R语言数据分析 43 建模流程 Intro项目背景前期准备数据描述数据清洗预分析及预处理数值型数据类别型数据 特征建模模型对比 Intro 近期在整理数据分析流程 xff0c 找到了之前写的一篇代码 xff0c 分享给大家
  • (工具技巧) —— Visual Studio Code页面放大缩小和字体的调整方式

    文章目录 Visual Studio Code页面放大缩小和字体的调整方式使用方式个人格言 Visual Studio Code页面放大缩小和字体的调整方式 使用方式 在日程的使用过程中 xff0c 有需要对Visual Studio Co
  • Centos7.8 安装 openldap+phpldapadmin 最详细步骤

    本文借助很多网上知识 做一个汇总 xff0c 并且自己手动一步步安装 很多openldap安装都是0几年的安装方式 xff0c 下面给大家演示我一步步安装的详细过程 xff0c CentOS7系统安装就不做演示了 xff0c 直接开肝 这里
  • Apache配置中文说明

    APACHE的配置 xff08 中文 xff09 基于 NCSA 服务的配置文件 这是Apache服务器主要配置文件 它包含服务器的影响服务器运行的配置指令 参见以取得关于这些指令的详细信息 不要只是简单的阅读这些指令信息而不去理解它 这里
  • ubunut 18.04安装xrdp及pulseaudio-module-xrdp

    1 桌面环境 sudo apt install xfce4 2 xrdp服务 sudo apt install xrdp 参考 xff1a xrdp 3 远程声音重定向 确认pulseaudio版本为11 1 pulseaudio vers
  • ios8 新的AlertView

    转自cocoachina OS 8的新特性之一就是让接口更有适应性 更灵活 xff0c 因此许多视图控制器的实现方式发生了巨大的变化 全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化
  • Debian 系统时间配置(NTP)

    系统时间NTP和RTC同步 xff0c Debian的时区配置 系统及架构 xff1a Linux Matrix 061001 5 10 42 yocto standard 1 Thu Jun 3 07 00 52 UTC 2021 arm
  • ubuntu之VScode

    文章目录 0 安装1 配置中文2 插件 xff08 推荐使用 xff09 3 conda4 matlab5 fira字体设置6 字符显示配置7 terminal自定义颜色配置8 环境变量 xff1a terminal runner问题9 复
  • PPT中一打开输入法后就卡死

    解决办法 C Program Files Common Files xff08 x86 xff09 Microsoft Shared OFFICE12 Office Setup Controller xff0c 把这个文件夹删除即可
  • LaTex 使用plt.savefig保存矢量图并插入论文中

    问题描述 今天开始给实验结果画图了 xff0c 总觉得使用png格式的图片糊糊的 xff0c 于是决定研究一下如何将矢量图插入Latex中 解决方案 由于我需要插入的图片是使用python绘制的并通过plt savefig保存下来 通过参考
  • AD18中制作自己的原理图模板

    新建原理图 xff0c 在原理图上使用画线等工具做出自己想要的样式 xff0c xff08 如果要在模板中加入图片 xff0c 可以直接将想要的图片用鼠标直接拖到原理图中 xff09 xff0c 制作好后将原理图另存为后缀 SchDot x
  • STM32 RTC晶振不起振原因

    今天下载程序后发现程序像死机一样 xff0c 然后仿真发现 xff0c 程序一直在等待RTC晶振就绪 xff0c 最终超时死机 然后检查的电路看都没问题 xff0c 最后通过查阅资料和咨询厂家了解到可能是晶振匹配电容的原因 如下为记录 xf
  • NO Cortex-M Device found in JTAG chain常见问题及解决方法.

    昨晚调试程序时 xff0c 由于是在别人程序基础上修改的程序 xff0c 没有对照自己的硬件原理图 xff0c 导致程序下载过后就不能再继续下载 xff0c 但那个源程序 xff08 即楼主参考的程序 xff09 还是可以继续下载 xff0
  • STM32系统时钟硬件仿真查看

    前几天回校调试基于407的程序 xff0c 以前都是在别人的程序基础上面改写只要能实现想要的功能不会管其他的 xff0c 结果基本就没用用过硬件JLINK的硬件仿真 xff0c 那晚蔡师姐帮忙一直弄到夜里12点多 xff0c 真的很感谢她
  • keil里面不能修改程序或加入程序

    楼主后知后觉 xff0c 今天打开一个工程文件 xff0c 发现不能在其中的文件 xff08 含有 xff09 里添加注释和修改 几经周折后 xff0c 发现这个问题与Keil没有关系 xff0c 这个带有锁的文件属性是 xff1a 只读
  • Alutium Designer中原理图库设计时如何设置鼠标移动元器件的最小间隔

    1 点击图中菜单栏中的高亮部分 43 43 43 43 43 2 点进去后 xff0c 选择 Set snap Grid xff0c 最小设置为1mil 完成
  • app定位、地图、坐标系的那些坑

    原文地址 xff1a http www jianshu com p f8224779ca63 开发App时会遇到各种坑 xff0c 本文分享我们在iOS Android系统中定位和地图中遇到的坑 xff0c 以及携程App的解决方案 定位
  • VMware Workstation 12安装windows server 2003

    VMware Workstation 12安装windows server 2003 无法显示图形界面报N多错问题 问题描述 xff1a 在VMware Workstation 12 xff08 下文简称VM 12 xff09 安装wind

随机推荐