一、docker-compose介绍

    使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,Docker Compose。

  Dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目) 

 1、docker-compose基础概念

    docker-compose项目是docker官方的开源项目, 负责实现对docker容器集群的快速编排。

    docker-compose将所管理的容器分为三层, 分别是工程(project),服务(service)以及容器(containner)

    docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名。

  •  一个工程当中,可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
  •  一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题。因此需要借助其他工具实现服务发现及负载均衡,比如consul。
  •  docker-compose的工程配置文件默认为docker-compose.yml。可以通过环境变量COMPOSE_FILE -f 参数自定义配置文件,其自定义多个有依赖关系的服务及每个人服务运行的容器。

二、YAML文件格式及编写

  示例yaml文件

 1 version: "3"  # 版本号,目前使用3
2 services: # 定义服务
3 rms-rcs: # 服务名称,目前是后端服务
4 image: rms-rcs:v1.0.0 # 镜像名称及tag
5 container_name: rms-rcs # 定义容器名称
6 networks: # 选择网络,为了容器之间通讯
7 - "tester"
8 irsp_client:
9 image: irsp_client:v1.0.0
10 container_name: irsp_client
11 networks:
12 - "tester"
13 irweb:
14 image: irweb:v1.0.0
15 container_name: irweb
16 ports:
17 - "80:80"
18 networks:
19 - "tester"
20 networks: # docker创建网络
21 tester: # 新建网络名称
22 driver: bridge # 网络类型,例如:桥接

三、Docker Compose 配置常用字段

字段  描述
build  指定Dockerfile文件名(要指定的Dockerfile文件需要在build标签的子级标签中用dockefile标签指定)
dockerfile 构建镜像上下文路径
context 可以是dockerfile路径,或者时执行git仓库的url地址
images 指定镜像(已存在)
command  执行命令,会覆盖容器启动后默认执行的命令(会覆盖dockefile中的CMD指令)
container_name  指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量。
deploy  指定部署和运行服务相关配置,只能在swarm模式使用
environment  添加环境变量
networks  加入网络,引用顶级networks下条目
network-mode  设置容器的网络模式
ports  暴露容器端口,与-p相同,但是端口不能低于60
volumes  挂载一个宿主机目录或命令卷到容器,命令卷要在顶级volumes定义卷名称
volumes_from  从另一个服务或容器挂载卷,可选参数:ro和rw(仅版本‘2’支持)
hostname 在容器内设置内核参数
links  连接诶到另一个容器,- 服务名称[ : ]
privileged  用来给容器root权限,注意是不安全的,true

  2、Docker-compose常用命令

    运行这些命令需要结合docker-compose一起使用。

    且必须要在含有docker-compose.yml文件的目录中才可以使用,不然报错。如果文件名称不是默认名称,可以使用-f参数。

命令 描述
build 重新构建服务
ps 列出容器
up 创建和启动容器
exec 在容器里面执行命令
scale 指定一个服务容器启动数量
top 显示正在运行的容器进程
logs 查看服务容器的输出
down 删除容器、网络、数据卷和镜像
stop/start/restart 停止/启动/重启服务

四、docker-compose安装

  docker-compose是docker的独立产品,因此需要安装docker之后再单独安装docker compose。

  github访问太慢,没有工具(那种工具)

    sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

  使用国内的即可

  然后找到下载位置给添加可执行权限:

    cd /user/local/bin

    chmod 777 docker-compose # 777给最大权限,如果是生产环境,那就酌情给权限4 2 1,自己算着给

下一节,关于docker network实现容器内部通讯。

docker-compose任务编排的更多相关文章

  1. AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排

    一.前言 上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来. 如果该应用继续引入mysql.redis.job等若干服务,到时候发布一次得工作量之大 ...

  2. asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器

    文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...

  3. Docker Compose容器编排

    Compose是Docker官方的开源项目,可以实现对Docker容器集群的快速编排.Compose 中有两个重要的概念:服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实 ...

  4. Docker Compose 容器编排

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

  5. Docker | 第七章:Docker Compose服务编排介绍及使用

    前言 前面章节,我们学习了如何构建自己的镜像文件,如何保存自己的镜像文件.大多都是一个镜像启动.当一个系统需要多个子系统进行配合时,若每个子系统也就是镜像需要一个个手动启动和停止的话,那估计实施人员也 ...

  6. Docker Compose 容器编排 NET Core 6+MySQL 8+Nginx + Redis

    环境: CentOS 8.5.2111Docker 20.10.10Docker-Compose 2.1.0 服务: db  redis  web nginx NET Core 6+MySQL 8+N ...

  7. 八、docker compose容器编排

    一. Docker-Compose 1.1. 什么是Docker Compose Compose 项目是 Docker 官方的开源项目,负责实现 Docker 容器集群的快速编排,开源代码在 http ...

  8. Docker Compose(八)

    Docker Compose 是Docker官方编排(Orchstration)项目之一,负责快速在集群中部署分布式应用.   Dockerfile可以让用户管理一个单独的应用容器:而Compose则 ...

  9. Docker之Compose服务编排

    Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景. 说明:Comp ...

  10. (转)Docker之Compose服务编排

    转自:https://www.cnblogs.com/52fhy/p/5991344.html Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose 通过 ...

随机推荐

  1. 工具-使用org.openjdk.jol查看对象在内存中的布局

    1 添加依赖 <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core& ...

  2. 2022.2.1最新版本的IDEA

          一.下载破解工具.激活码 激活工具下载链接:https://note.youdao.com/s/1ANz2F3o   6G5NXCPJZB-eyJsaWNlbnNlSWQiOiI2RzVO ...

  3. Python 内置界面开发框架 Tkinter入门篇 丁

    如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/X5cqennLrq7i1pzBAAqQ2w 本文大概 2562 个字,阅读需花 15 分钟 内 ...

  4. rosdep update 一直失败问题

    1.排除网络问题 2.增加TIMEOUT的时间: 更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py.gbpdistro ...

  5. CSS_语法格式

    * 格式: 选择器{ 属性名1:属性值1: 属性名2:属性值2: ... } *选择器:筛选具有相似特征的元素 *注意: *没一对属性需要使用":"隔开,对最后一对属性可以不加&q ...

  6. 【vite】踩坑,首次点击路由跳转页面,发生回退,页面闪回,二次点击才能进入目标页面

    [vite]踩坑,首次点击路由跳转页面,发生回退,页面闪回,二次点击才能进入目标页面 最近在做移动端前端项目,使用的vite3+vue3+vant,组件和api挂载,使用的自动导入,unplugin- ...

  7. Solon2 之基础:一、常用应用配置说明

    约定参考: //资源路径约定(不用配置:也不能配置) resources/app.yml( 或 app.properties ) #为应用配置文件 resources/WEB-INF/static/ ...

  8. JZOJ 4496. 【GDSOI 2016】第一题 互补约数

    \(\text{Problem}\) 求 \[\sum_{i=1}^n \sum_{d|n} \gcd(d, \frac{i}{d}) \] 有 \(n \le 10^{11}\) \(\text{A ...

  9. Windows 10系统设置多用户同时远程登录教程 and rdpwrap下载 and Win10多用户同时远程桌面的另类解决方案---支持1809和1909和2004版本V2.0

    转载简书: Windows 10系统设置多用户同时远程登录教程 - 简书 (jianshu.com) 转载github: 发布 ·stascorp/rdpwrap ·GitHub 转载csdn: Wi ...

  10. ACR20新闻_RA指南更新_最大化应用MTX

    美国风湿病学院(ACR)学术年会2020新闻 译自Medscape官网 https://www.medscape.com/viewarticle/940636#vp_1 (注: 译文借助谷歌翻译助手, ...