当前位置:首页 > 技术分析 > 正文内容

Docker Compose 使用说明

ruisui882个月前 (04-15)技术分析37

以下是 Docker Compose 的详细说明,分为几个核心部分,便于理解和使用:


1. 什么是 Docker Compose?

  • 定义: Docker Compose 是一个通过 YAML 文件定义和管理多容器 Docker 应用的工具。
  • 作用: 简化多容器应用的配置、启动和生命周期管理,替代冗长的 docker run 命令。
  • 适用场景: 开发环境、测试环境、单主机部署(生产环境建议结合 Docker Swarm/Kubernetes)。

2. 核心概念

概念

说明

项目

由一组关联的容器组成,默认以所在目录名命名(可用 -p 指定)。

服务

一个服务的定义对应一个容器(如 web、db)。

卷 (Volumes)

持久化数据存储,避免容器销毁后数据丢失。

网络 (Networks)

自定义容器间通信的网络,默认创建独立的网络供服务互通。


3. docker-compose.yml 文件结构

yaml

version: "3.8" # 指定 Compose 版本(与 Docker 引擎版本相关)

services: # 定义所有服务

web: # 服务名称

image: nginx:latest # 使用的镜像

ports:

- "80:80" # 端口映射(主机:容器)

environment: # 环境变量

- DEBUG=1

volumes:

-
./html:/usr/share/nginx/html # 挂载主机目录到容器

depends_on: # 依赖关系

- db

db:

image: postgres:13

volumes:

-
db_data:/var/lib/postgresql/data # 使用命名卷

volumes: # 声明卷

db_data:


4. 常用配置项

配置项

说明

build

根据 Dockerfile 构建镜像(替代 image)。

command

覆盖容器默认的启动命令。

ports

暴露端口(格式:HOST:CONTAINER)。

environment

设置环境变量(支持键值对或列表)。

volumes

挂载主机路径或命名卷到容器。

networks

指定容器加入的网络。

depends_on

定义服务启动顺序(注意:不保证依赖服务已完全就绪)。

restart

容器退出时的重启策略(如 always、on-failure)。


5. 常用命令

命令

说明

docker compose up -d

启动所有服务(后台模式)。

docker compose down

停止并删除容器、网络。

docker compose ps

查看服务状态。

docker compose logs [service]

查看服务日志。

docker compose build

重新构建服务的镜像。

docker compose exec [service] [command]

在运行中的容器内执行命令(如进入 Shell)。

docker compose pull

拉取服务的最新镜像。




6. 高级功能

  • 环境变量文件: 使用 .env 文件或 env_file 配置项管理变量。

yaml

env_file:

- .env

  • 多文件配置: 使用 -f 指定多个 Compose 文件,适应不同环境(如开发、生产)。

bash

docker compose -f docker-compose.yml -f docker-compose.prod.yml up

  • 扩展字段: 使用 x-* 自定义字段实现配置复用。
  • 健康检查: 确保依赖服务真正就绪。

yaml

healthcheck:

test: ["CMD", "curl", "-f", "http://localhost"]

interval: 30s

timeout: 10s

retries: 3


7. 示例:Web 应用 + Redis

yaml

version: "3.8"

services:

web:

build: . # 使用当前目录的 Dockerfile 构建

ports:

- "5000:5000"

environment:

- REDIS_HOST=redis

depends_on:

- redis

redis:

image: "redis:alpine"

volumes:

- redis_data:/data

volumes:

redis_data:

启动命令:

bash

docker compose up -d # 启动

docker compose down --volumes # 停止并删除所有资源


8. 注意事项

  • 版本兼容性: 不同 Compose 文件版本支持的功能不同(版本对照表)。
  • 服务依赖: depends_on 仅控制启动顺序,需结合健康检查确保依赖服务就绪。
  • 资源限制: 可在配置中限制 CPU/内存(如 deploy.resources 用于 Swarm 模式)。

掌握以上内容,您已能高效使用 Docker Compose 管理多容器应用!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3482.html

分享给朋友:

“Docker Compose 使用说明” 的相关文章

快速上手React

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能。对于刚开始学习使用框架的小伙伴们,可以推荐这个框架,学会之后简直能颠覆之前你对前端开发的认...

Gitlab+Jenkins通过钩子实现自动部署web项目,图文详细教程

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群 一:基础环境介绍及准备1):Gitlab服务器:ubuntu 192.168.152.131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程2):Jenkins服务器:ubunu 192.168...

快速掌握 Git:程序员必会的版本控制技巧

在现代软件开发中,版本控制系统(VCS)是开发人员不可或缺的工具。无论是个人项目,还是多人协作的团队开发,良好的版本控制都能确保代码管理的高效性与稳定性。而在版本控制系统中,Git 凭借其分布式、灵活性和高效性,成为了最流行的工具之一。几乎所有的开发团队都在使用 Git 来管理代码版本、协作开发和追...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

三勾知识付费(PHP+vue3)微信小程序平台+SAAS+前后端源码

项目介绍三勾小程序商城基于thinkphp8+element-plus+uniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。软件架构后端:thinkphp8 管理端...

复盘总结:从0到1,企业微信小程序开发11步走

作者复盘了从域名准备到内容发布的整个过程,这是项目团队一起回忆整个产品总结出来的经验,值得我们学习,与大家分享。去年接手了两个微信小程序的开发项目,作为一位产品人员,在和开发供应商进行磨合的时候也遇到了许许多多的问题。如今项目已进入收尾阶段,之前也参考了许多其他做微信小程序的同行同事的经验,再做一次...