docker compose 和 docker-compose 这两个命令虽然看起来很相似,但实际上有一些重要的区别:

  1. 实现方式不同:

    • docker-compose 是用 Python 编写的独立工具[2][4]。
    • docker compose 是用 Go 语言重写的,作为 Docker CLI 的一个插件[1][4]。
  2. 集成度不同:

    • docker compose 作为 Docker CLI 的一部分,与 Docker 平台更加集成[3]。
    • docker-compose 是一个独立的工具,需要单独安装。
  3. 命名约定不同:

    • docker compose 使用连字符(-)作为容器名称的分隔符[3]。
    • docker-compose 使用下划线(_)作为分隔符。
  4. 功能特性略有差异:

    • docker compose 支持一些新特性,如 dockerfile_inline 选项[2]。
    • 有些 docker-compose 的功能在 docker compose 中可能不支持[2]。
  5. 使用方式:

    • docker compose 作为 docker 的子命令使用[1][3]。
    • docker-compose 作为独立命令使用。

虽然两者在大多数情况下可以互换使用,但 docker compose 是更新的版本,也是 Docker 官方推荐的使用方式[3]。对于大多数项目,切换到 docker compose 不需要对 Compose YAML 文件或开发工作流程进行更改[3]。

如果你正在使用较新版本的 Docker,建议使用 docker compose 命令,因为它提供了更好的集成和一些新特性。但是,为了兼容性,许多系统仍然保留了 docker-compose 命令作为 docker compose 的别名[3]。

Citations:
[1] https://stackoverflow.com/questions/66514436/difference-between-docker-compose-and-docker-compose
[2] https://forums.docker.com/t/docker-compose-vs-docker-compose/137884
[3] https://docs.docker.com/compose/migrate/
[4] https://www.reddit.com/r/docker/comments/mmfr5p/docker_compose_vs_dockercompose/
[5] https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Dockerfile-vs-docker-compose-Whats-the-difference

加入交流群

GitHub 加速计划 / compose / compose
33.27 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:2 个月前 )
501b5acd Add `jhrotko` to Core Maintainers. Signed-off-by: Laura Brehm <laurabrehm@hey.com> 6 天前
f51bc4cd Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com> 6 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐