Docker Compose 是 Docker 的一个工具,用于定义和运行多容器的 Docker 应用程序。通过使用一个 YAML 文件(通常命名为 docker-compose.yml
),可以轻松管理应用程序中的多个服务、网络和卷,从而实现复杂环境的快速部署和管理。
Docker Compose 的核心概念
服务(Service):构成应用程序的各个容器,每个服务定义了容器运行的镜像、命令、网络端口等配置。
网络(Network):用于连接各个服务的虚拟网络。
卷(Volume):持久化数据的存储,确保数据在容器重启或删除后仍然存在。
Docker Compose 文件示例
一个简单的 docker-compose.yml
文件示例:
yaml
复制代码
version: '3' services: web: image: nginx ports: - "80:80" redis: image: redis
在这个示例中,定义了两个服务:web
和 redis
。web
服务使用 nginx 镜像并将容器的 80 端口映射到主机的 80 端口;redis
服务使用 redis 镜像。
常用的 Docker Compose 命令
docker-compose --version:查看 Docker Compose 的版本。
bash
复制代码
docker-compose --version
docker-compose up:构建、(重新)创建、启动并关联一个服务容器。
bash
复制代码
docker-compose up
可以加
-d
参数在后台运行容器:bash
复制代码
docker-compose up -d
docker-compose down:停止并删除容器、网络、卷和镜像。
bash
复制代码
docker-compose down
docker-compose build:构建或重新构建服务。
bash
复制代码
docker-compose build
docker-compose ps:列出所有容器。
bash
复制代码
docker-compose ps
docker-compose stop:停止服务容器。
bash
复制代码
docker-compose stop
docker-compose start:启动已停止的服务容器。
bash
复制代码
docker-compose start
docker-compose restart:重启服务容器。
bash
复制代码
docker-compose restart
docker-compose logs:查看服务容器的日志。
bash
复制代码
docker-compose logs
docker-compose exec:在运行中的服务容器中执行命令。
bash
复制代码
docker-compose exec [服务名称] [命令]
docker-compose pull:拉取服务所需的镜像。
bash
复制代码
docker-compose pull
docker-compose rm:删除停止的服务容器。
bash
复制代码
docker-compose rm
通过 Docker Compose,可以方便地定义和运行多容器的 Docker 应用程序,简化了应用的部署和管理流程,特别适用于开发、测试和生产环境。