美文网首页
docker-compose v2 简介

docker-compose v2 简介

作者: 偷油考拉 | 来源:发表于2023-12-12 11:09 被阅读0次

    https://docs.docker.com/compose/migrate/

    一、简介

    自2023年7月,Compose V1 就停止接受更新了。
    Compose V2 发布于 2020 年,当前所有的 docker desktop 都支持。它提供了改进了 CLI 体验,提升了 BuildKit 的编译性能,以及持续的新功能开发。

    二、在 linux 上安装 Compose V2

    1. 仓库安装

    • 安装
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    or

    sudo yum update
    sudo yum install docker-compose-plugin
    
    • 测试
    docker compose version
    

    2. 手动安装

    DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
    mkdir -p $DOCKER_CONFIG/cli-plugins
    curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
    chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
    sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
    

    三、Compose V1 跟 Compose V2 的不同

    1. docker-compose vs docker compose

    不同于V1,V2 集成到了命令行,推荐的语法是 docker compose
    Docker 命令行提供了一些参数和标签,比如: DOCKER_HOST环境变量、--context 命令行标签。
    这种变化使得可以在 root docker命令使用所有的共享标签。比如:docker --log-level=debug --tls compose up 开启 debug 日志,开启 tls 支持。

    2. Service container names

    Compose 生成的容器名基于 project nameservice namescale/replica count

    在Compose V1, 下划线 (_) 作为单词分隔符。在Compose V2,中横线 (-) 作为单词分隔符。

    下划线在DNS hostname中是不合法字符。通过使用中横线,Compose V2 确保容器可以通过hostname访问到。

    比如:Compose 命令 -p myproject up --scale=1 svc ,在Compose V1的结果是 myproject_svc_1,在Compose V2的结果是 myproject-svc-1

    注意:
    在 Compose V2 中, --compatibility全局标签 or COMPOSE_COMPATIBILITY环境变量保留了 Compose V1操作,可以使用下划线(_)作为单词分隔符。由于必须为每次运行Compose V2命令指定此选项,因此建议您在转换到Compose V2时仅将其用作临时措施。

    3. Command-line flags and subcommands

    Compose V2几乎支持所有Compose V1的标签和子命令,因此在大多数情况下,脚本中可插拔式替换。

    V2 不支持的操作

    • docker-compose scale,替换为 docker compose up --scale
    • docker-compose rm --all

    V2 的不同处

    Compose V1 Compose V2
    --compatibility Deprecated. Migrates YAML fields based on legacy schema version. Uses _ as word separator for container names instead of - to match V1.
    ps --filter KEY-VALUE Undocumented. Allows filtering by arbitrary service properties. Only allows filtering by specific properties, e.g. --filter=status=running.

    4. 环境变量

    Compose V1中的环境变量行为没有正式记录,在某些边缘案例中表现不一致。

    对于Compose V2,环境变量涵盖了优先级.env文件,还包括许多棘手的情况,如 转义嵌套引号

    参考:https://docs.docker.com/compose/environment-variables/env-file/

    相关文章

      网友评论

          本文标题:docker-compose v2 简介

          本文链接:https://www.haomeiwen.com/subject/torvgdtx.html