Docker Compose

Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用一个命令,您可以创建并启动配置中的所有服务。

安装 Docker Compose

在安装 Docker Compose 之前,请确保已经安装了 Docker。Docker Compose 的安装方法取决于您的操作系统:

在 Linux 上安装 Docker Compose

  1. 下载最新版本的 Docker Compose:

  2. 赋予可执行权限:

  3. 验证安装是否成功:

在 macOS 和 Windows 上安装 Docker Compose

如果您已经安装了 Docker Desktop,则无需单独安装 Docker Compose。Docker Desktop 已经包含了它。

Docker Compose 文件

Docker Compose 使用 YAML 文件来配置应用程序的服务。这个文件默认名为 docker-compose.yml,但也可以是其他名称,只要在运行 Docker Compose 命令时指定文件名即可。

文件结构

Docker Compose 文件的基本结构如下所示:

version 字段

version 字段表示 Docker Compose 文件的版本。版本号越高,支持的功能越多。

services 字段

services 字段定义了应用程序使用的各个服务。每个服务都可以有自己的配置项,如镜像、端口映射、环境变量等。

示例:一个简单的 Web 应用

下面是一个简单的示例,展示了一个包含 Web 应用和 Redis 数据库的服务配置:

-- -------------------- ---- -------
-------- ---

---------
  ----
    ------ -
    ------
      - -----------
    --------
      - -------
    -----------
      - -----

  ------
    ------ --------------

web 服务

  • build: 指定构建上下文的路径。
  • ports: 映射主机的端口到容器的端口。
  • volumes: 将主机上的目录挂载到容器中。
  • depends_on: 指定服务的依赖关系,这里 web 服务依赖于 redis 服务。

redis 服务

  • image: 指定要使用的镜像。

更多配置选项

除了上述示例中提到的配置项外,Docker Compose 文件还支持许多其他配置选项,例如环境变量、网络、卷等。这些配置项可以帮助您更灵活地管理应用程序的服务。

环境变量

您可以通过 environmentenv_file 字段来设置环境变量:

或者通过 env_file 来引用外部的环境变量文件:

网络

您可以使用 networks 字段来定义和连接网络:

-- -------------------- ---- -------
---------
  ---------
  --------

---------
  ----
    ---------
      - --------
      - -------
  ---
    ---------
      - -------

您可以使用 volumes 字段来将数据持久化到宿主机上:

-- -------------------- ---- -------
--------
  -----
    ------- -----

---------
  ---
    ------ --------
    --------
      - -----------------------------

启动和停止服务

启动服务

使用以下命令启动配置中的所有服务:

如果希望以后台模式运行服务,可以添加 -d 参数:

停止服务

使用以下命令停止并删除正在运行的服务:

查看服务状态

要查看服务的状态,可以使用以下命令:

其他常用命令

除了上述基本命令外,Docker Compose 还提供了一些其他有用的命令,如重新构建服务、重启服务等:

  • 重新构建服务:

  • 重启服务:

  • 查看日志:

  • 查看特定服务的日志:

通过这些命令和配置选项,您可以轻松地管理和部署多容器的 Docker 应用程序。

上一篇: Docker Dockerfile
下一篇: Docker Machine
纠错
反馈