Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以创建并启动配置中的所有服务。
安装 Docker Compose
在安装 Docker Compose 之前,请确保已经安装了 Docker。Docker Compose 的安装方法取决于您的操作系统:
在 Linux 上安装 Docker Compose
下载最新版本的 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 --version
在 macOS 和 Windows 上安装 Docker Compose
如果您已经安装了 Docker Desktop,则无需单独安装 Docker Compose。Docker Desktop 已经包含了它。
Docker Compose 文件
Docker Compose 使用 YAML 文件来配置应用程序的服务。这个文件默认名为 docker-compose.yml
,但也可以是其他名称,只要在运行 Docker Compose 命令时指定文件名即可。
文件结构
Docker Compose 文件的基本结构如下所示:
version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
version 字段
version
字段表示 Docker Compose 文件的版本。版本号越高,支持的功能越多。
services 字段
services
字段定义了应用程序使用的各个服务。每个服务都可以有自己的配置项,如镜像、端口映射、环境变量等。
示例:一个简单的 Web 应用
下面是一个简单的示例,展示了一个包含 Web 应用和 Redis 数据库的服务配置:
-- -------------------- ---- ------- -------- --- --------- ---- ------ - ------ - ----------- -------- - ------- ----------- - ----- ------ ------ --------------
web 服务
build
: 指定构建上下文的路径。ports
: 映射主机的端口到容器的端口。volumes
: 将主机上的目录挂载到容器中。depends_on
: 指定服务的依赖关系,这里web
服务依赖于redis
服务。
redis 服务
image
: 指定要使用的镜像。
更多配置选项
除了上述示例中提到的配置项外,Docker Compose 文件还支持许多其他配置选项,例如环境变量、网络、卷等。这些配置项可以帮助您更灵活地管理应用程序的服务。
环境变量
您可以通过 environment
或 env_file
字段来设置环境变量:
environment: - DEBUG=false - DATABASE_URL=postgres://user:password@host/dbname
或者通过 env_file
来引用外部的环境变量文件:
env_file: - .env
网络
您可以使用 networks
字段来定义和连接网络:
-- -------------------- ---- ------- --------- --------- -------- --------- ---- --------- - -------- - ------- --- --------- - -------
卷
您可以使用 volumes
字段来将数据持久化到宿主机上:
-- -------------------- ---- ------- -------- ----- ------- ----- --------- --- ------ -------- -------- - -----------------------------
启动和停止服务
启动服务
使用以下命令启动配置中的所有服务:
docker-compose up
如果希望以后台模式运行服务,可以添加 -d
参数:
docker-compose up -d
停止服务
使用以下命令停止并删除正在运行的服务:
docker-compose down
查看服务状态
要查看服务的状态,可以使用以下命令:
docker-compose ps
其他常用命令
除了上述基本命令外,Docker Compose 还提供了一些其他有用的命令,如重新构建服务、重启服务等:
重新构建服务:
docker-compose up --build
重启服务:
docker-compose restart
查看日志:
docker-compose logs
查看特定服务的日志:
docker-compose logs web
通过这些命令和配置选项,您可以轻松地管理和部署多容器的 Docker 应用程序。