docker compose安装、使用及快速入门教程

 更新时间:2026年05月07日 09:04:28   作者:drstx  
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,这篇文章给大家介绍docker-compose 如何安装、使用及快速入门,感兴趣的朋友跟随小编一起看看吧

什么是 Docker Compose?

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件(docker-compose.yml),您可以配置应用程序的所有服务,然后使用单个命令创建和启动所有服务。

主要功能:

  • 使用 YAML 文件管理多容器应用
  • 一键启动/停止整个应用栈
  • 服务间网络和卷管理
  • 环境变量配置
  • 服务依赖关系管理

典型应用场景:

  • 开发环境搭建
  • 自动化测试环境
  • 单主机部署
  • 微服务应用

对于单机多容器应用编排,推荐通过官方渠道安装 Docker Compose,使用 docker-compose.yml 配置文件管理服务,适合开发、测试及中小型生产环境。

先说结论:Docker Compose 是 Docker 官方提供的多容器编排工具,通过 YAML 文件定义服务,一条命令即可启动完整应用栈。

  • 适合:单机多容器应用、开发测试环境、微服务本地调试
  • 先看:安装方式选择(插件版或独立二进制)、compose 文件版本兼容性
  • 建议:优先使用 docker compose 插件命令,生产环境注意版本锁定和配置备份

命令速用版

安装后常用命令如下,可直接在终端执行:

# 查看版本确认安装成功
docker-compose `--version`
# 启动所有服务(前台)
docker-compose up
# 启动所有服务(后台)
docker-compose up -d
# 停止并删除容器、网络、卷
docker-compose down
# 查看运行中的容器
docker-compose ps
# 查看服务日志
docker-compose logs <service>
# 进入容器执行命令
docker-compose exec <service> <command>
# 重新构建镜像
docker-compose build
# 重启服务
docker-compose restart

为什么会这样

Docker Compose 解决的核心问题是:当应用由多个容器组成时,手动执行多条 docker run 命令容易出错且难以维护。通过 docker-compose.yml 文件,你可以将服务定义、网络配置、卷挂载等信息集中管理,使用单个命令完成整个应用栈的启动。

Compose 管理三个层级内容:工程(运行目录)、服务(子项目)、容器(服务实例)。但需要注意,它只能在单一主机上进行编排,跨节点编排需要使用 Docker Swarm 或 Kubernetes。

分步处理

1. 安装 Docker Compose

有两种主流安装方式,任选其一即可:

方式一:作为 Docker 插件安装(推荐)

# CentOS/RedHat 系统
yum install -y docker-compose-plugin
# 验证安装
docker compose version

安装后使用 docker compose 命令(无连字符)。

方式二:独立二进制安装

# 下载安装包(版本号需替换为实际版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose `--version`

安装后使用 docker-compose 命令(有连字符)。

2. 编写 docker-compose.yml

在项目根目录创建配置文件,基本结构如下:

version: "3.9"
services:
  web:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - .:/code
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password

常用字段说明:build 指定 Dockerfile 路径,image 指定镜像,ports 暴露端口,volumes 挂载卷,environment 设置环境变量,depends_on 定义服务依赖。

3. 启动应用

# 进入配置文件所在目录
cd /path/to/your/project
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps

怎么验证是否生效

完成安装和配置后,按以下步骤验证:

  1. 验证安装:执行 docker-compose `--version`docker compose version,有版本号输出即表示安装成功
  2. 验证服务启动:执行 docker-compose ps,所有服务状态应显示为 Up
  3. 验证端口映射:执行 docker-compose port <service> <port> 查看端口映射,或使用 curl 测试服务可访问性
  4. 验证日志:执行 docker-compose logs <service> 查看服务启动日志,确认无报错
  5. 验证网络:执行 docker network ls 查看是否创建了自定义网络,服务间可通过服务名互相访问

常见坑

  • 命令混用:插件版使用 docker compose,独立版使用 docker-compose,两者不要混用
  • 版本兼容性:docker-compose.yml 的 version 字段需与 Compose 版本匹配,公开资料中没有看到可靠的版本兼容性量化对照表,建议参考官方文档
  • 容器名称冲突:如果指定 container_name,该服务无法使用 scale 命令扩容,因为容器名称必须唯一
  • 端口限制:ports 映射的端口不能低于 60
  • 网络隔离:Compose 会创建默认自定义网络(bridge 类型),而非使用默认 docker0 桥接网络,服务间可通过服务名直接访问
  • 跨主机限制:Compose 只能用于单一主机编排,无法跨节点,多主机场景需考虑 Swarm 或 K8s
  • 配置变更:修改 yml 后需执行 docker-compose up `--force-recreate` 重新加载配置

参考来源

  • Docker 官方文档 - Docker Compose 安装指南:https://docs.docker.com/compose/install/
  • Docker 官方文档 - Compose 文件格式:https://docs.docker.com/compose/compose-file/compose-file-v3/
  • 阿里云开发者社区 - Docker Compose 安装及入门使用
  • 阿里云开发者社区 - docker-compose 快速入门及实战
  • 博客园 - 单机编排工具之 docker-compose 快速入门使用

原文链接:https://www.zjcp.cc/ask/10128.html

到此这篇关于docker compose安装、使用及快速入门教程的文章就介绍到这了,更多相关docker compose安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Dockerfile实现容器内部服务随容器自启动的方法

    使用Dockerfile实现容器内部服务随容器自启动的方法

    这篇文章主要介绍了使用Dockerfile实现容器内部服务随容器自启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • docker search 搜索镜像的实现示例

    docker search 搜索镜像的实现示例

    本文主要介绍了docker search搜索镜像的实现示例,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Docker的四种网络模式

    Docker的四种网络模式

    这篇文章介绍了Docker的四种网络模式,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Docker 端口映射与容器互联的实现

    Docker 端口映射与容器互联的实现

    Docker的端口映射和容器互联是构建和管理微服务架构时重要的概念,本文主要介绍了Docker 端口映射与容器互联的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Docker中编码和时区设置不生效问题排查小结

    Docker中编码和时区设置不生效问题排查小结

    本文主要介绍了在Docker容器中排查编码和时区设置不生效的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Docker使用镜像仓库的方法

    Docker使用镜像仓库的方法

    这篇文章介绍了Docker使用镜像仓库的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • Docker Desktop 启用 Kubernetes 失败后处理方案

    Docker Desktop 启用 Kubernetes 失败后处理方案

     在setting -> Kubernetes 中,选中 Enable Kubernetes 后,长时间显示 Starting ...  ,在Images中显示几个自动下载的镜像后,显示 Start Kubernetes failed,这篇文章主要介绍了Docker Desktop启用Kubernetes失败后处理方法,需要的朋友可以参考下
    2023-08-08
  • Docker+Nginx打包部署前后端分离步骤实现

    Docker+Nginx打包部署前后端分离步骤实现

    这篇文章主要介绍了Docker+Nginx打包部署前后端分离步骤实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-01-01
  • Docker compose启动服务遇到的问题小结

    Docker compose启动服务遇到的问题小结

    这篇文章主要介绍了Docker compose启动服务遇到的问题小结,这个是检验我们的docker compose掌握程度,因此里面的镜像没有提前拉取,挂载数据卷的目录也没有提前创建,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Docker容器下运行Nginx并实现反向代理

    Docker容器下运行Nginx并实现反向代理

    这篇文章介绍了Docker容器下运行Nginx并实现反向代理的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03

最新评论