Docker Compose 介绍 、安装 、命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | 一、单机编排之Docker Compose 介绍 当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容易出错,此时推荐使用docker 单机编排工具 docker-compose docker-compose 是 docker 容器的一种单机编排服务,docker-compose 是一个管理多个容器的工具,比如:可以解决容器之间的依赖关系, 就像启动一个nginx 前端服务的时候会调用后端的tomcat,那就得先启动tomcat,但是启动tomcat 容器还需要依赖数据库, 那就还得先启动数据库,docker-compose 可以用来解决这样的嵌套依赖关系,并且可以替代docker命令对容器进行创建、 启动和停止等手工的操作因此,如果说docker命令就像linux的命令,docker compse就像shell脚本,可以自动的执行容器批量操作, 从而实现自动化的容器管理,或者说docker命令相当于ansible命令,那么docker compose文件,就相当于ansible-playbook的yaml文件 docker-compose 项目是Docker 官方的开源项目,负责实现对Docker 容器集群的快速编排,docker-compose 将所管理的容器分为三层, 分别是工程(project),服务(service)以及容器(container)(swarm中有介绍) 二、安装Docker Compose 方法1:通过pip安装 python-pip 包将安装一个 pip 的命令,pip 命令是一个pyhton 安装包的安装工具,其类似于ubuntu 的apt 或者 redhat 的yum, 但是pip 只安装 python 相关的安装包,可以在多种操作系统安装和使用pip # yum install python3-pip # pip3 install --upgrade pip # pip3 install docker-compose 方法2:直接从github下载安装对应版本 wget https: //github .com /docker/compose/releases/download/1 .25.3 /docker-compose -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose 方法3:直接从包仓库安装 此方法安装的版本较旧,不推荐使用 #ubuntu安装 [root@ubuntu1804 ~] #apt -y install docker-compose [root@ubuntu1804 ~] #docker-compose --version docker-compose version 1.17.1, build unknown #CentOS7安装,依赖EPEL源 [root@centos7 ~] #yum -y install docker-compose [root@centos7 ~] #docker-compose --version docker-compose version 1.18.0, buil 8dd22a9 三、docker-compose 命令和参数 -f,– file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。 -p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。 -x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本) -x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本) -verbose输出更多调试信息 - v ,–version打印版本并退出 --log-level LEVEL #定义日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL) --no-ansi #不显示 ANSI 控制字符 多个配置文件 我们可以为同一个项目配置多个compose文件,使用多个 Compose 文件使您能够针对不同的环境或不同的工作流程自定义 Compose 应用程序。 默认情况下,Compose 读取两个文件,docker-compose.yml和一个可选的docker-compose.override.yml文件。按照惯例, docker-compose.yml包含您的基本配置。override.yml 文件,顾名思义,就是包含现有服务或全新服务的配置覆盖。 如果在两个文件中都定义了服务,Compose 会使用 override 进行合并配置。 要使用多个覆盖文件或具有不同名称的覆盖文件,您可以使用该-f选项来指定文件列表。Compose 按照在命令行中指定的顺序合并文件。 当您使用多个配置文件时,您必须确保文件中的所有路径都相对于基本 Compose 文件( 指定的第一个 Compose 文件-f) docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d build Build or rebuild services 命令参数 build #从docker-compose 构建(重新构建)项目中的服务容器 bundle #从当前 docker compose 文件生成一个以当前目录为名称的从 Compose 文件生成一个分布式应用程序捆绑包(DAB) config #查看当前配置,没有错误不输出任何信息 create #创建服务 down #停止并删除容器、网络、图像和卷 events #从容器接收实时事件,可以指定 json 日志格式,如 docker-compose events --json exec #进入指定容器进行操作 help #获取有关命令的帮助 images #显示当前服务器的 docker 镜像信息 kill #强制终止运行中的容器 logs #查看容器的日志 pause #暂停服务 port #打印端口绑定的公共端口 ps #列出容器 pull #拉取服务映像 push #推送(上传)服务映像 restart #重新启动服务 rm #删除停止的容器 run #运行一次性命令,等于 docker run --rm scale #设置指定服务运行的容器个数 docker-compose scale nginx=2 start #启动服务 stop #停止服务 top #显示正在运行的进程 unpause #取消暂停服务 up #创建和启动容器 version #显示Docker Compose版本信息 1、启动服务容器 docker-compose up [options] [–scale SERVICE=NUM…] [SERVICE…] 选项包括: -d 在后台运行服务容器 –no-color 不使用颜色来区分不同的服务的控制输出 –no-deps 不启动服务所链接的容器 –force-recreate 强制重新创建容器,不能与–no-recreate同时使用 –no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用 –no-build 不自动构建缺失的服务镜像 –build 在启动容器前构建服务镜像 –abort-on-container- exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用 -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒) –remove-orphans 删除服务中没有在compose文件中定义的容器 –scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数 -f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。 docker-compose -f docker-compose.yml up -d 2、显示正在运行的进程: docker-compose top 3、 列出项目中目前的所有容器 docker-compose ps [options] [SERVICE…] 4、停止容器 docker-compose stop [options] [SERVICE…] 选项包括: -t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒) 5、停止和删除容器、网络、卷、镜像。 docker-compose down [options] 选项包括: –rmi type ,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像; local ,删除镜像名为空的镜像 - v , –volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷 –remove-orphans,删除服务中没有在compose中定义的容器 docker-compose logs [options] [SERVICE…] 查看服务容器的输出。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过–no-color来关闭颜色。 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 变量 服务容器一旦构建后,将会带上一个标记名。可以随时在项目目录下运行docker-compose build来重新构建服务 docker-compose pull [options] [SERVICE…] 拉取服务依赖的镜像。 选项包括: –ignore-pull-failures,忽略拉取镜像过程中的错误 –parallel,多个镜像同时拉取 –quiet,拉取镜像过程中不打印进度信息 docker-compose restart [options] [SERVICE…] 重启项目中的服务。 选项包括: -t, –timeout TIMEOUT,指定重启前停止容器的超时(默认为10秒) docker-compose rm [options] [SERVICE…] 删除所有(停止状态的)服务容器。 选项包括: –f, –force,强制直接删除,包括非停止状态的容器 - v ,删除容器所挂载的数据卷 docker-compose run [options] [- v VOLUME…] [-p PORT…] [-e KEY=VAL…] SERVICE [COMMAND] [ARGS…] 在指定服务上执行一个命令。 在指定容器上执行一个 ping 命令。 docker-compose run ubuntu ping www.baidu.com docker-compose scale 设置指定服务运行的容器个数。通过service=num的参数来设置数量 docker-compose scale web=3 db=2 docker-compose pause [SERVICE…] 暂停一个服务容器 docker-compose kill [options] [SERVICE…] 通过发送SIGKILL信号来强制停止服务容器。 支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号: docker-compose kill -s SIGINT docker-compose config [options] 验证并查看compose文件配置。 选项包括: –resolve-image-digests 将镜像标签标记为摘要 -q, –quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息 –services 打印服务名,一行一个 –volumes 打印数据卷名,一行一个 docker-compose create [options] [SERVICE…] 为服务创建容器。 选项包括: –force-recreate:重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数 –no-recreate:如果容器已经存在,不需要重新创建,不兼容–force-recreate参数 –no-build:不创建镜像,即使缺失 –build:创建容器前,生成镜像 docker-compose exec [options] SERVICE COMMAND [ARGS…] 选项包括: -d 分离模式,后台运行命令。 –privileged 获取特权。 –user USER 指定运行的用户。 -T 禁用分配TTY,默认docker-compose exec 分配TTY。 –index=index,当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器 docker-compose port [options] SERVICE PRIVATE_PORT 显示某个容器端口所映射的公共端口。 选项包括: –protocol=proto,指定端口协议,TCP(默认值)或者UDP –index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1) docker-compose push [options] [SERVICE…] 推送服务依的镜像。 选项包括: –ignore-push-failures 忽略推送镜像过程中的错误 docker-compose unpause [SERVICE…] 恢复处于暂停状态中的服务。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律