Docker2026-04-15·8 分钟
Docker 网络、数据卷与Compose实践
讲解 Docker 网络、数据卷和 Docker Compose 的常见使用场景与配置方法。
Docker 网络、数据卷与 Compose 实践
1. Docker 网络基础
bash
docker network ls
docker network create app-net
docker network inspect app-net- 默认网络:
bridge、host、none。 - 自定义网络实现容器间名称解析。
bash
docker run -d --name redis --network app-net redis:7
docker run -d --name api --network app-net my-api:latest2. 网络模式说明
bridge:默认隔离网络,容器通过端口映射访问。host:共享宿主机网络,适合低延迟场景。none:无网络,通常用于安全隔离。
3. 数据卷类型
- 命名卷:
-v mydata:/data - 绑定挂载:
-v ./config:/app/config
bash
docker volume create app-data
docker run -d --name app -v app-data:/data my-app:latest- 命名卷适合持久化数据且可以跨容器使用。
- 绑定挂载适合本地开发和调试配置文件。
4. 数据卷最佳实践
- 不要把
.git、node_modules等临时文件挂载到卷中。 - 使用
.dockerignore过滤构建上下文。
5. Docker Compose 简介
docker compose 适合编排多服务开发环境。
yaml
version: '3.9'
services:
web:
image: nginx:latest
ports:
- '8080:80'
volumes:
- ./site:/usr/share/nginx/html:ro
networks:
- app-net
api:
image: my-api:latest
networks:
- app-net
networks:
app-net:
driver: bridge6. Compose 常见命令
bash
docker compose up -d
docker compose ps
docker compose logs -f
docker compose downup -d后台启动。down会停止并删除网络,默认不删除命名卷。
7. Compose 与数据卷
yaml
volumes:
db-data:
services:
db:
image: postgres:16
volumes:
- db-data:/var/lib/postgresql/data- 通过
docker compose down --volumes删除所有 compose 创建的卷。
8. 常见场景
- 使用自定义网络隔离开发环境。
- 用命名卷持久化数据库、缓存、上传目录。
- 通过 Compose
depends_on保证容器启动顺序(仅等待启动,不等待服务健康)。
9. 排查技巧
docker network inspect <name>查看网络拓扑。docker volume inspect <name>查看挂载位置。docker compose logs -f观察服务启动日志。
Docker网络数据卷Compose