Docker Compose 本地环境搭建:redis
- [🔗 前言:Docker Compose 本地环境搭建相关文章](#🔗 前言:Docker Compose 本地环境搭建相关文章)
- [🐳 Docker Compose 本地环境搭建:redis](#🐳 Docker Compose 本地环境搭建:redis)
-
- [📚 目录结构设计](#📚 目录结构设计)
- [📄 docker-compose.yml](#📄 docker-compose.yml)
- [🚀 启动方式](#🚀 启动方式)
🔗 前言:Docker Compose 本地环境搭建相关文章
🐳 Docker Compose 本地环境搭建:redis
📚 目录结构设计
推荐使用如下结构:
bash
infra/
├── .env
├── mysql/
│ └── docker-compose.yml
├── redis/
│ └── docker-compose.yml
├── elasticsearch/
│ └── docker-compose.yml
├── skywalking/
│ └── docker-compose.yml
├── nacos/
│ └── docker-compose.yml
📄 docker-compose.yml
bash
# =========================================================
# 用于构建环境:Redis
# 宿主机挂载目录、端口、密码、版本号、环境后缀均通过 .env 文件管理
# =========================================================
###########################################################
# 网络配置
###########################################################
networks:
env_network: # 内部网络标识固定
driver: bridge
name: ${NETWORK_NAME} # Docker 实际网络名动态生成
ipam:
config:
- subnet: ${NETWORK_SUBNET} # 子网从 .env 获取
###########################################################
# 卷(Volume)配置
###########################################################
volumes:
# Redis
redis_data:
driver: local
driver_opts:
type: none
device: ${HOST_VOLUME}/${ENV}/Redis/data
o: bind
###########################################################
# 服务定义
###########################################################
services:
# Redis
redis:
image: redis:${REDIS_VERSION}
container_name: redis_${REDIS_VERSION}_${ENV}
networks:
- env_network
ports:
- "${REDIS_PORT}:6379"
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
command: redis-server --requirepass "${REDIS_PASSWORD}"
volumes:
- redis_data:/data
restart: unless-stopped
labels:
env: ${ENV}
version: ${REDIS_VERSION}
service: redis_${ENV}
🚀 启动方式
在 .env 同级目录下执行
bash
docker compose --env-file .env -f redis/docker-compose.yml up -d
- -d 表示 后台运行
- Compose 会:
- 自动读取 .env 文件里的变量
- 根据 docker-compose.yml 配置创建网络、卷和容器
- 容器名、端口、挂载目录都会根据 .env 替换