Docker Compose 和 Dockerfile 是 Docker 生态中两个核心但用途不同的工具,它们的区别主要体现在以下几个方面:
Dockerfile
FROM, COPY, RUN 等)描述如何从基础镜像构建出一个定制化的镜像。Docker Compose
docker-compose.yml 文件描述多个服务(容器)的配置、网络、卷、依赖关系等。Dockerfile
my-app:1.0)。docker build 和 docker run 命令配合使用。Docker Compose
docker-compose up 一键启动所有服务,简化开发、测试环境部署。Dockerfile
FROM python:3.9
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Docker Compose
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
build 字段会引用 Dockerfile 来构建镜像。image: nginx)。| 操作 | Dockerfile | Docker Compose |
|---|---|---|
| 构建 | docker build -t my-image . |
docker-compose build |
| 运行 | docker run my-image |
docker-compose up |
| 停止 | docker stop container-id |
docker-compose down |
两者通常结合使用:用 Dockerfile 构建镜像,再用 Compose 编排容器。