Docker Compose:使用多个容器共享 PostgreSQL 数据库

阅读时长 5 分钟读完

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,可以方便地将多个容器组合在一起,共同完成一个应用程序的部署。在开发 Web 应用时,我们经常需要使用数据库来存储数据,并且希望数据库能够很方便地与应用程序共享状态。在本文中,我们将介绍如何使用 Docker Compose 来配置多个容器共享 PostgreSQL 数据库。

准备工作

首先,需要安装最新版本的 Docker 和 Docker Compose。这两个软件可以在 macOS、Linux 和 Windows 上运行,并且可以通过官方网站下载和安装。

配置 PostgreSQL 容器

要使用 Docker Compose 来配置 PostgreSQL 容器,我们需要编写一个 YAML 文件,该文件描述了我们要创建的容器,以及它们之间的关系和依赖关系。

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

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

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

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

在这个 YAML 文件中,我们定义了一个名为 db 的 PostgreSQL 容器。该容器基于官方的 postgres 镜像构建,指定了数据库的用户名、密码和数据库名称。我们还指定了一个 db-data 卷来存储数据库数据。在 ports 部分,我们将容器的端口映射到主机上的端口 5432,这样我们就可以使用 PostgreSQL 客户端连接到容器中的数据库了。最后,我们定义了一个名为 app-network 的网络,使得我们的容器可以彼此通信。

配置应用程序容器

接下来,我们将创建一个应用程序容器,该容器将连接到我们刚刚创建的 PostgreSQL 容器,并使用该容器中存储的数据。

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

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

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

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

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

在这个 YAML 文件中,我们定义了两个容器:一个是先前创建的 db 容器,另一个是新的 app 容器,该容器将托管我们的 Web 应用程序。我们使用 build 指令将 Dockerfile 路径作为参数,以为应用程序创建一个 Docker 镜像。在 volumes 部分,我们将应用程序的代码目录挂载到容器中,这样我们就可以在容器中运行应用程序了。在 ports 部分,我们将容器的端口映射到主机上的端口 8080,这样我们就可以在浏览器中打开应用程序了。在 environment 部分,我们指定了连接到 PostgreSQL 数据库所需的数据库 URL。在 depends_on 部分,我们指定了 app 容器需要先启动 db 容器。

运行 Docker Compose

在编写完 YAML 文件并将其保存到名为 docker-compose.yml 的文件中后,我们可以使用以下命令启动 Docker Compose:

这将会启动我们在 YAML 文件中定义的所有容器,并将它们连接在一起。现在,我们可以访问 http://localhost:8080 来查看我们的应用程序是否正在运行,并使用 psql 命令连接到 PostgreSQL 数据库。

总结

在本文中,我们介绍了如何使用 Docker Compose 来配置多个容器共享 PostgreSQL 数据库。我们通过编写一个 YAML 文件来定义我们的容器,以及它们之间的关系和依赖关系。然后,我们使用 docker-compose up 命令和我们的 YAML 文件来启动和连接所有容器。使用 Docker Compose,我们可以轻松地构建和部署复杂的 Web 应用程序,并确保它们之间的状态始终保持同步。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646da550968c7c53b0c49d2a

纠错
反馈