docker-compose实践介绍

容器编排docker-compose

docker-compose.yml文件是一个 YAML 文件,用于定义 Docker 容器在生产中的行为方式。
将 Compose 文件设置为 version:“3”。本质上,这会使其兼容 swarm mode。我们可以使用 docker stack deploy 命令(仅在 Compose 文件版本 3.x 及更高版本上受支持)运行此文件。您可以使用 docker-compose up 运行具有_非 swarm_ 配置的版本 3 文件。

技术栈

技术栈是一组相关的服务,它们共享依赖项并且可以一起进行编排和扩展。单个技术栈能够定义和协调整个应用的功能(虽然很复杂的应用程序可能需要使用多个技术栈)。

特点

1、单个主机上多个隔离环境
2、创建容器时保留数据卷
3、仅创建已经修改的容器
4、通过变量来定制环境变量

docker-compose中的一些指令

1、build
build:
  context: ./dir
  dockerfile: Dockerfile-alternate
  args:
    - buildno: 1
    - password=secret
  cache_from:
    - alpine:latest
    - corp/web_app:3.14
  labels:
    com.example.description: "Accounting webapp"
    com.example.department: "Finance"

context:说明dockerfile的路径
dockerfile:备用dockerfile,还必须指定构建路径
args:添加的构建参数
cache_from:所列出的镜像将被引擎用来缓存
labels:使用Docker标签将元数据添加到生成的图像中。您可以使用数组或字典

2、cap_add、cap_drop

添加或删除容器功能

cap_add:
  - ALL

cap_drop:
  - NET_ADMIN
  - SYS_ADMIN
3、command

覆盖默认command命令

command: bundle exec thin -p 3000
4、configs

在每个服务中使用configs为每个服务授予config权限,支持两种语法变体。

  • SHORT SYNTAX
    短语法变体仅指定配置名称。这将授予容器对配置的访问权限并将其挂载在容器的/<config_name>的目录下。源名称和目标安装点都设置为配置名称。
version: "3.3"
services:
  redis:
    image: redis:latest
    deploy:
      replicas: 1
    configs:
      - my_config
      - my_other_config
configs:
  my_config:
    file: ./my_config.txt
  my_other_config:
    external: true

my_other_config被定义为外部资源,这意味着它已经在Docker中定义,可以通过运行docker config create命令或通过其他堆栈部署来定义。如果外部配置不存在,则堆栈部署将失败,并显示config not found错误

  • LONG SYNTAX
    长语法提供了在服务的任务容器中如何创建配置的更多粒度。
version: "3.3"
services:
  redis:
    image: redis:latest
    deploy:
      replicas: 1
    configs:
      - source: my_config
        target: /redis_config
        uid: '103'
        gid: '103'
        mode: 0440
configs:
  my_config:
    file: ./my_config.txt
  my_other_config:
    external: true

数字UID或GID,它将在服务的任务容器中拥有已安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值