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 编排容器。