大数跨境
0
0

告别复杂部署!Docker Compose极简入门,轻松管理多容器应用

告别复杂部署!Docker Compose极简入门,轻松管理多容器应用 Annie出海
2025-10-29
1
导读:立即阅读

在容器化部署过程中,使用原生docker run命令存在以下痛点:


docker run --name nginx -80:80 -443:443 \-/data/nginx/html:/usr/share/nginx/html \-/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \-/data/nginx/conf.d:/etc/nginx/conf.d/ \-/data/nginx/logs:/var/log/nginx \-/data/nginx/ssl:/etc/nginx/ssl \--privileged=true ---restart=always nginx
  • 命令冗长复杂:多参数拼接导致可读性差,维护成本高


  • 批量操作困难:多容器场景需重复执行命令,缺乏统一管理


  • 环境一致性差:人工输入易出错,难以保证配置统一


Docker Compose可以解决以上问题


Docker Compose是Docker官方提供的容器编排工具,用于简化多容器应用的定义配置部署过程


它通过一个YAML格式的配置文件(docker-compose.yml)统一管理多个关联容器,解决以下核心问题:


1.简化多容器应用部署


允许通过单一配置文件定义多个服务(如Web应用、数据库、缓存等),无需手动编写复杂docker run命令链,实现一键启动/停止所有关联容器。


2.统一环境配置


将容器依赖(镜像版本、网络、端口映射、数据卷、环境变量等)集中声明,确保开发、测试、生产环境的一致性,避免因环境差异导致的运行问题。


3.自动化服务依赖管理


支持定义服务间的启动顺序和依赖关系(如先启动数据库再启动应用),确保容器按逻辑顺序初始化。


4.隔离与复用性


通过独立网络和卷配置,隔离不同项目的容器环境,同时复用同一物理机的资源,提升开发效率。


典型应用场景


  • 本地开发环境搭建:快速启动包含前后端服务、数据库、消息队列等的完整开发栈。


  • 微服务架构测试:模拟多服务交互场景,验证服务间的通信和容错机制。


  • CI/CD流程集成:在自动化流水线中通过Compose文件定义测试环境,实现快速验证。


今日文章阅读福利:《运维入门大礼包

扫码添加小助理,发送暗号运维,即可获取。





PART.01

下载

支持两种安装方式,推荐选择与系统架构匹配的方式


1.1 命令行快速安装(Linux/macOS)


安装


# 安装curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

授予执行权限


# 授予执行权限sudo chmod +x /usr/local/bin/docker-compose

验证安装


docker-compose --version

1.2 手动安装(网络受限环境)


如果使用命令下载的很慢,可以手动从Github下载,然后上传到服务器即可,先解释一下上面的下载命令


curl-L


  • curl:命令行工具,用于通过URL传输数据(如下载文件)。


  • -L:让curl自动跟随重定向。GitHub的Releases链接通常会重定向到实际文件地址,此选项确保能正确下载文件。


下载地址解释


https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m`
  • 版本号1.23.1:指定要下载的Docker Compose版本,可替换为其他版本号。


  • 动态生成文件名


    uname -s:获取操作系统名称(如Linux、Darwin(macOS))。


    uname -m:获取硬件架构(如x86_64、arm64)。


    最终文件名示例:


    Linux 64位系统→docker-compose-Linux-x86_64


    macOS ARM架构→docker-compose-Darwin-arm64


输出重定向


> /usr/local/bin/docker-compose
  • >:将curl下载的内容保存到指定路径。


  • /usr/local/bin/docker-compose:Docker Compose的安装路径,通常需要管理员权限才能写入。


  • 若权限不足,需在命令前加sudo,即:


sudo curl -L ... > /usr/local/bin/docker-compose

所以,手动下载有以下几个步骤


1.2.1 确定版本信息


uname -suname -m


1.2.2 拼接下载链接


https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m`

使用步骤1的uname -suname -m替换掉链接中的uname -suname -m,例如:


https://github.com/docker/compose/releases/download/1.23.1/docker-compose-Linux-x86_64

浏览器中输入该链接即可下载docker compose文件,建议使用科学上网或者使用下载器下载(IDM,迅雷)


1.2.3 移动文件到指目录下


将下载好的docker compose文件移动到/usr/local/bin/docker-compose目录下即可


1.2.4 赋予文件可执行权限


赋予docker compose文件可执行权限


sudo chmod +x /usr/local/bin/docker-compose



PART.02

基本使用
version: '3.8'  # 指定兼容的 Compose 规范版本
services:        # 服务定义区块  webapp:        # 服务名称(自定义)    image: nginx:alpine  # 基础镜像    container_name: my-nginx  # 容器命名(可选)    ports:      - "80:80"               # 端口映射(主机:容器)      - "443:443"    volumes:      - ./nginx.conf:/etc/nginx/nginx.conf  # 挂载配置文件      - html:/usr/share/nginx/html          # 使用命名卷    networks:      - frontend                            # 加入指定网络    depends_on:      - database  # 声明依赖关系   database:    image: mysql:8.0    environment:      MYSQL_ROOT_PASSWORD: secure_password  # 环境变量注入    volumes:      - mysql_data:/var/lib/mysql           # 数据持久化    networks:      - backend
volumes:   # 声明数据卷(自动创建)  html:  mysql_data:
networks:  # 自定义网络(隔离通信)  frontend:  backend:

2.1 常用命令


执行docker compose(或旧版docker-compose)命令时,默认在当前工作目录下查找以下文件:


  • docker-compose.yml


  • docker-compose.yaml


文件不在当前目录或使用自定义文件名,需通过-f(或--file)参数指定路径:


# 指定其他目录或文件名docker compose -f /path/to/custom-compose.yml up
# 使用多个 Compose 文件(合并配置)docker compose -f docker-compose.yml -f docker-compose.prod.yml up


 文章声明 
本文部分素材整理自网络公开领域,版权归原作者所有,由Linux实战训练营排版成文,转载请注明出处,侵删。
图片
新盟教育自2009年成立,至今已有16年的IT培训经验。在长期的发展过程中,我们始终秉持“以学生发展为宗旨,以教学质量为生命,以团队精神为法宝,以服务态度为基础”的理念,踏踏实实地开展教学工作。

新盟教育是华为HALP授权培训机构,也是腾讯课堂101认证机构,还曾与思科官方、阿里云官方有过合作。这些合作与授权,代表着行业对我们的认可。

在课程设置上,我们以华为、思科课程为主,同时也开设了Linux、红帽、K8s微服务等课程。为了让学员能更好地适应企业工作,我们还提供企业实操的选修知识讲座。通过这些课程,我们希望帮助学员掌握扎实的IT技能。

成立至今,我们已经为18万多名学员提供了IT技术教育和指导,向Cisco、Google、联想、方正等上百家知名企业输送了很多IT人才,在合作伙伴和学员中都收获了不错的评价。

如果你有志于在IT领域发展,新盟教育愿意成为你成长路上的助力,帮你实现职业目标。
图片

【声明】内容源于网络
0
0
Annie出海
跨境分享地 | 持续输出实用建议
内容 42355
粉丝 2
Annie出海 跨境分享地 | 持续输出实用建议
总阅读246.1k
粉丝2
内容42.4k