首页 > 其他分享 >docker-compose任务编排

docker-compose任务编排

时间:2023-03-03 17:00:45浏览次数:52  
标签:容器 compose 服务 指定 编排 docker networks

一、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实现容器内部通讯。

 

标签:容器,compose,服务,指定,编排,docker,networks
From: https://www.cnblogs.com/xiaoyuzai09/p/17176262.html

相关文章

  • 配置 Docker 使用 GPU
    准备工作首先你需要准备一台拥有GPU的实例,在这里我将使用阿里云的竞价实例来做演示,因为它对于短期使用GPU更加划算。注意,本篇文章将教你手动进行GPU驱动的配置,所以在购......
  • 【Dockerfile】nvm-git-node-centos7镜像
    #依赖centos环境FROMcentos:7#安装vim、git和nvm环境RUNyuminstall-ywget\&&mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.rep......
  • Laravel运行项目提示/composer/autoload_real.php问题
    1.确保已安装Composer。如果没有请安装.安装步骤参考:http://www.360doc.com/content/22/0919/15/65839921_1048527526.shtml2.进入Laraver项目的根目录,通过命令窗口执行......
  • Dockercompose conda 切换环境
    FROMcontinuumio/miniconda3:4.11.0#要创建的conda环境名ARGconda_env=XXXXX#将conda环境bin加入PATHENVPATH/opt/conda/bin:$PATH#一个RUN是一个shell环境,......
  • docker学习笔记1(在线安装及离线安装)
    Centos7安装docker引擎官方安装文档https://docs.docker.com/engine/install/centos/#install-using-the-repositoryDocker分两个大版本,一个是CE,一个是EE。CE为社区版,......
  • 基于docker镜像快速搭建开发环境
    准备工作本地docker环境,服务docker镜像下载地址:https://registry-d.ym/harbor/projects/22/repositories哪吒的环境变量配置和挂载配置:http://nezha.compass.ym/#/appM......
  • docker记录
    安装(Ubuntu)1.更新aptapt-getupdate2.安装相关依赖apt-getinstallapt-transport-httpsca-certificatescurlgnupg-agen3.添加docker的官方密钥curl-fsSLhttp......
  • Docker环境下安装Redis 集群
    Redis三种解决方案哈希取余分区   优点:简单粗暴,直接有效缺点:不好扩缩容,某个节点宕机,会导致hash取余全部数据重新洗牌一致性哈希环优点:加入或......
  • Docker部署gitlab(避坑版)
    1下载docker#安装依赖yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#设置yum源yum-config-manager--add-repohttps://download.docker.com/li......
  • Docker 三节点 MongoDB 修改集群IP
    需求背景因为业务需要服务器IP变更,记录一下mongdb三节点变更的办法,我这边是在vm上进行测试原IP:172.16.16.81新IP:172.16.16.84修改MongoDB集群IP#登录其中......