Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,你可以使用 YAML 文件来配置应用程序的服务,然后,只需要一个命令,就可以从你的配置中创建并启动所有服务。
以下是使用 Docker Compose 的一些基本步骤:
安装 Docker Compose
Docker Compose 通常会随着 Docker Desktop 一起安装,如果你使用的是 Docker Desktop,那么你已经有了 Docker Compose。
如果你使用的是 Linux 系统,你可以使用以下命令安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建 Docker Compose 文件
首先,你需要创建一个 docker-compose.yml 文件,这个文件定义了你的应用服务。例如:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8000:80"
database:
image: postgres:latest
environment:
POSTGRES_PASSWORD: example
在这个例子中,我们定义了两个服务:web 和 database。web 服务使用最新的 Nginx 镜像,并将容器的 80 端口映射到主机的 8000 端口。database 服务使用最新的 PostgreSQL 镜像,并设置了环境变量 POSTGRES_PASSWORD。
使用 Docker Compose
在 docker-compose.yml 文件所在的目录下,你可以使用以下命令来管理你的应用:
启动服务:
docker-compose up
在后台启动服务:
docker-compose up -d
停止服务:
docker-compose stop
重启服务:
docker-compose restart
查看服务状态:
docker-compose ps
删除所有停止的服务:
docker-compose rm
停止并删除所有服务:
docker-compose down
Docker Compose 文件详解
Docker Compose 文件由多个顶级元素组成,包括:
version:指定 Compose 文件格式的版本。services:定义应用服务,每个服务都有自己的配置。networks:定义网络。volumes:定义卷。
每个服务可以有以下配置:
image:指定服务使用的镜像。build:指定 Dockerfile 的位置,用于构建镜像。command:覆盖默认的命令。environment:设置环境变量。volumes:挂载卷。ports:暴露端口。depends_on:定义服务之间的依赖关系。links:链接到其他服务。expose:暴露端口,但不映射到宿主机。networks:加入网络。
Docker Compose 文件的详细文档可以在 Docker Compose 文件参考中找到。
请注意,Docker Compose 文件的版本号可能会随着 Docker 版本的更新而更新,因此请确保查看最新的文档以获取最新的信息。