Docker Compose从安装到使用详细过程

 更新时间:2025年09月04日 10:38:29   作者:吐个泡泡v  
Docker Compose是Docker官方提供的一个工具,用于定义和运行多容器 Docker应用程序,本文给大家介绍Docker Compose从安装到使用详细过程,感兴趣的朋友跟随小编一起看看吧

在现代容器化应用开发中,Docker Compose 是一个不可或缺的工具,它能够帮助我们轻松定义和运行多容器的 Docker 应用程序。

一、什么是 Docker Compose?

Docker Compose 是 Docker 官方提供的一个工具,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件(docker-compose.yml),我们可以配置应用程序的服务,然后使用一个命令就可以从配置中创建并启动所有服务。官网直通车

Docker Compose 的优势

  • 简化配置:通过一个配置文件管理多个容器
  • 一键部署:一条命令启动整个应用栈
  • 环境一致性:开发、测试、生产环境配置统一
  • 服务编排:自动处理服务间的依赖关系

二、安装 Docker Compose

1.在 Linux 上安装

(1)方法一:使用包管理器安装(推荐)

对于 Ubuntu/Debian 系统:

# 更新包索引
sudo apt update
# 安装 Docker Compose 插件
sudo apt install docker-compose-plugin
# 验证安装
docker compose version

对于 CentOS/RHEL/Fedora 系统:

# CentOS/RHEL 8+
sudo yum install docker-compose-plugin
# Fedora
sudo dnf install docker-compose-plugin
# 验证安装
docker compose version

(2)方法二:下载二进制文件

# 下载最新版本的 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version

2.在其他平台安装

  • macOS:如果使用 Docker Desktop,已经包含 Docker Compose
  • Windows:如果使用 Docker Desktop,已经包含 Docker Compose

三、Docker Compose 基本使用

1. 创建 docker-compose.yml 文件

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - db
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: myapp
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

2. 常用命令详解

# 启动所有服务
docker compose up
# 后台启动服务
docker compose up -d
# 停止服务并清理容器
docker compose down
# 查看运行状态
docker compose ps
# 查看日志
docker compose logs
# 重新构建服务
docker compose build
# 重启服务
docker compose restart

四、实际应用示例

1.构建一个完整的 Web 应用环境

version: '3.8'
services:
  # 前端服务
  frontend:
    image: node:16
    working_dir: /app
    volumes:
      - ./frontend:/app
    ports:
      - "3000:3000"
    command: npm start
    environment:
      - REACT_APP_API_URL=http://backend:5000
    depends_on:
      - backend
  # 后端服务
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb
      - REDIS_URL=redis://redis:6379
    depends_on:
      - db
      - redis
  # 数据库
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"
  # 缓存
  redis:
    image: redis:alpine
    ports:
      - "6379:6379"
volumes:
  postgres_data:

2.使用环境变量

创建 .env 文件:

DB_HOST=localhost
DB_PORT=5432
TAG=v1.0

在 docker-compose.yml 中使用:

version: '3.8'
services:
  app:
    image: myapp:${TAG:-latest}
    environment:
      - DB_HOST=${DB_HOST}
      - DB_PORT=${DB_PORT}
    env_file:
      - .env

3.高级使用技巧

多环境配置管理

# 开发环境
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
# 生产环境
docker compose -f docker-compose.yml -f docker-compose.prod.yml up

五、docker compose和docker-compose区别

1.安装docker compose

sudo apt install docker-compose-plugin
# 使用方式:docker compose(注意中间有空格)

2.安装docker-compose

sudo apt install docker.io docker-compose
# 使用方式:docker-compose(连写,带横线)

3.详细对比分析

特性

docker-compose-plugin

docker-compose

安装命令

docker compose

docker-compose

官方推荐

✅ Docker官方推荐的新方式

传统方式

维护状态

积极维护

逐渐被替代

功能完整性

完全兼容

完全兼容

更新频率

更频繁

较慢

总的来说docker-compose是v1版本,docker compose是v2版本,官方推荐用新版的。

到此这篇关于Docker Compose 详解:从安装到使用的完整指南的文章就介绍到这了,更多相关Docker Compose安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker提示permission denied错误的解决方案

    Docker提示permission denied错误的解决方案

    这篇文章主要给大家介绍了关于Docker提示permission denied错误的解决方案,出现这个问题是因为宿主机的当前运行用户和docker容器里面的运行用户不一致导致访问权限问题,需要的朋友可以参考下
    2023-08-08
  • 本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程(图文详解)

    本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程(图文详解)

    本文和大家分享一款目前在G站有11K+Star的开源跨平台音乐服务器 Navidrome,如何在 Linux 环境本地使用 Docker 部署,并结合cpolar 内网穿透工具配置公网地址,实现随时随地远程访问本地存储音乐的详细流程,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • docker中容器数据卷volume介绍

    docker中容器数据卷volume介绍

    大家好,本篇文章主要讲的是docker中容器数据卷volume介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • docker-compose部署kafka全过程

    docker-compose部署kafka全过程

    文章介绍了如何使用docker-compose.yaml文件启动容器,并查看和创建Kafka topic,以及监控topic下的数据,作者分享了个人经验,希望对大家有所帮助
    2024-12-12
  • 详解Dockerfile 中的 COPY 与 ADD 命令

    详解Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。感兴趣的朋友跟随小编一起看看吧
    2018-09-09
  • Docker 安装 Nginx 并挂载目录的实现示例

    Docker 安装 Nginx 并挂载目录的实现示例

    本文介绍了如何使用Docker拉取Nginx镜像、创建容器,并设置挂载目录,挂载目录用于将容器内配置文件与主机关联,便于直接修改影响容器配置,感兴趣的可以了解一下
    2024-10-10
  • Docker Swarm入门实例详解

    Docker Swarm入门实例详解

    这篇文章主要介绍了Docker Swarm 入门实例详解的相关内容,小编觉得十分不错,在这里给大家分享下,需要的朋友可以参考。
    2017-10-10
  • docker服务假死的解决方法

    docker服务假死的解决方法

    工作中使用docker-compose部署容器,有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器,但是依然无法停止或者一直卡顿在停止中的阶段,所以本文给大家介绍了docker服务假死的解决方法,需要的朋友可以参考下
    2023-12-12
  • Docker的进程和Cgroup概念详解

    Docker的进程和Cgroup概念详解

    文章主要介绍了容器内的进程组织和关系,包括containerd-shim和容器内1号进程的角色和特点,以及信号处理机制,同时,文章还讨论了Cgroup在Linux系统中用于资源管理和控制的机制,包括CFS调度算法和Kubernetes中的资源管理,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • 基于iptables的Docker端口白名单控制实现

    基于iptables的Docker端口白名单控制实现

    本文主要介绍了通过iptables为Docker Compose部署的容器设置宿主机端口IP白名单,强调规则顺序与持久化配置,提供单端口和multiport两种实现方式,感兴趣的可以了解一下
    2025-07-07

最新评论