docker
  • docker教程
  • advanced
    • Docker 构建缓存指南
    • Docker清理数据卷(volume prune)
    • Docker分配CPU资源
    • Dockerfile+Maven插件构建SpringBoot镜像(推荐)
    • Dockerfile构建SpringBoot镜像
    • docker-find-volume-container-mapping
    • idea配置docker
    • Docker inspect 检测所有容器挂载状态的脚本
    • Docker inspect 查看容器、镜像的高级用法
    • Docker Jenkins进阶配置
    • 基于jenkins容器部署SpringBoot应用构建镜像(基于Dockerfile+Maven插件构建)
    • Keycloak Docker容器部署文档
    • Keycloak Docker容器部署文档
    • hostname-strict 参数详解
    • docker-keycloak-image
    • docker-keycloak-prod
    • Maven插件构建SpringBoot镜像(二)
    • 基于Maven插件为SpringBoot应用构建镜像并推送到远程_私人仓库(Docker Hub)
    • Maven插件构建SpringBoot镜像(一)
    • Docker MongoDB进阶配置
    • Docker 多阶段构建指南
    • Docker MySql进阶配置
    • Docker network进阶配置
    • Docker Nginx进阶配置
    • Docker清理悬空镜像(空(none)镜像)
    • Docker pip install --no-cache-dir
    • Docker redis进阶配置
    • Docker安全的清理匿名数据卷
    • Docker Bind Mount vs Volume 的区别
  • concepts
    • docker、docker engine和docker desktop区别
    • 架构
    • 什么是容器?
    • 什么是镜像?
    • 什么是Docker?
    • 什么是仓库?
  • docker-compose
    • Docker Compose 锚点的用法
    • docker-compose 编排多服务
    • docker-compose 常用命令
    • docker-compose 部署jenkins
    • docker-compose安装mySql
    • docker-compose网络配置
    • docker-compose安装nginx
    • docker-compose安装redis
    • docker Compose 示例1
  • docker-hub
    • Docker Hub账号服务说明
  • install
    • CentOS Docker 安装
    • Debian Docker 安装
    • Docker 安装 Apache
    • Docker 安装 CentOS
    • Docker 安装 Elasticsearch
    • Docker 安装 GitLab
    • Docker 安装 Jenkins
    • Docker 安装 MongoDB
    • Docker 安装 MySQL
    • Docker 安装 Nginx
    • Docker 安装 Node.js
    • Docker 安装 PHP
    • Docker 安装 Portainer
    • Docker Python 官方镜像使用说明(TAG说明)
    • Docker 安装 Python
    • Docker 安装 Redis
    • Docker 安装 Tomcat
    • Docker 安装 Ubuntu
    • Docker 安装 Wordpress
    • Docker 国内镜像加速
    • MacOS Docker 安装
    • Ubuntu Docker 安装
    • Windows Docker 安装
  • manual
    • Docker attach 命令
    • Docker build 命令
    • Docker 清理命令
    • Docker命令大全
    • Docker commit 命令
    • docker-compose-run-command
    • Docker cp 命令
    • Docker create 命令
    • Docker diff 命令
    • Docker rm 命令
    • Docker exec 命令
    • Docker export 命令
    • Docker history 命令
    • Docker images 命令
    • Docker import 命令
    • Docker info 命令
    • Docker inspect 命令
    • Docker kill 命令
    • Docker load 命令
    • Docker login/logout 命令
    • Docker logs 命令
    • Docker network 命令
    • Docker pause/unpause 命令
    • Docker port 命令
    • Docker 常见问题
    • Docker ps 命令
    • Docker pull 命令
    • Docker push 命令
    • Docker rename 命令
    • docker-resources
    • Docker rm 命令
    • Docker rm 命令
    • Docker run 命令
    • Docker save 命令
    • Docker search 命令
    • Docker start/stop/restart 命令
    • Docker stats 命令
    • Docker tag 命令
    • Docker top 命令
    • Docker version 命令
    • Docker version 命令
    • Docker wait 命令
    • diff
      • Docker Compose 和 docker-compose 区别
      • Docker import、export 与 save、load 命令 区别
  • usage
    • Docker docker-compose 使用
    • Docker 容器连接
    • Docker 容器使用
    • Docker Dockerfile Ptyhon实战配置-1
    • Docker Dockerfile Ptyhon实战配置之多阶段构建-2
    • Docker Dockerfile
    • Docker 镜像使用
    • Docker Machine
    • Docker 仓库管理
    • Docker 重启策略
    • Swarm集群管理
  • assets
    • mysql
      • my.cnf
Powered by GitBook
On this page
  • 概念
  • 示例:
  • 解释:
  • 结果:
  • 总结:

Was this helpful?

  1. docker-compose

Docker Compose 锚点的用法

概念

锚点(Anchor):

  • 锚点允许你在 YAML 文件中为一个部分定义一个名字,通常是通过 & 来定义。

  • 这允许你在文件的其他地方引用这部分内容,而不需要重复编写相同的内容。

引用(Alias):

  • 引用通过 * 来使用,引用了某个之前定义的锚点的内容。

  • 这样,引用就可以将已经定义的内容复制到当前的位置。

示例:

假设在 docker-compose.yml 中,你有一段定义了多个构建参数的部分:

version: '3'
x-build_args: &build_args  # 这里定义了一个锚点
  INSTALL_PYTHON_VERSION: "3.9"
  INSTALL_NODE_VERSION: "16"

services:
  flask-dev:
    build:
      context: .
      target: development
      args:
        <<: *build_args  # 使用锚点引用之前定义的内容

解释:

  • x-build_args: &build_args 定义了一个名为 build_args 的锚点(&build_args),其中存储了一些构建参数,如 INSTALL_PYTHON_VERSION 和 INSTALL_NODE_VERSION。

  • 然后,在 flask-dev 服务的 build 部分,使用了 <<: *build_args,这意味着将 build_args 中定义的内容插入到 args 部分中。

结果:

args: <<: *build_args 会把锚点 build_args 中的内容展开到 args 部分,等价于:

args:
  INSTALL_PYTHON_VERSION: "3.9"
  INSTALL_NODE_VERSION: "16"

这样,args 就包含了这些构建参数,而无需重复编写它们。

总结:

  • <<: *build_args 是 YAML 中的引用语法,表示将 build_args 中定义的内容插入到当前位置。

  • 通过这种方式,你可以避免重复写相同的配置,使得文件更加简洁和易于维护。

Previousdocker-composeNextdocker-compose 编排多服务

Last updated 1 month ago

Was this helpful?