Docker 集群搭建教程:入门到进阶

阅读时长 8 分钟读完

介绍

Docker 是一个流行的容器化平台,它可以帮助开发人员和系统管理员更轻松地构建、部署和运行应用程序。在 Docker 中,容器是应用程序的运行时环境,它们可以在任何地方运行,而不需要关心底层的操作系统或硬件架构。

Docker 集群是一组 Docker 主机,它们协同工作以提供更高的可用性、可伸缩性和容错性。在本文中,我们将介绍如何使用 Docker Compose 和 Docker Swarm 搭建一个 Docker 集群,并使用一些示例代码来演示如何部署和管理容器。

前置条件

在开始本教程之前,您应该已经安装了 Docker 和 Docker Compose,可以通过以下命令来验证它们是否已经安装:

如果您还没有安装 Docker 和 Docker Compose,请参考官方文档进行安装。

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用程序的服务和容器,并提供了一些基本的命令来管理应用程序的生命周期。

编写 Docker Compose 文件

下面是一个简单的 Docker Compose 文件示例,它定义了一个 Web 服务和一个数据库服务:

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

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

在上面的示例中,我们定义了两个服务:web 和 db。web 服务是一个基于当前目录的 Docker 镜像,它将容器内部的 8000 端口映射到主机的 8000 端口,并依赖于 db 服务。db 服务使用了官方的 PostgreSQL 镜像,并设置了 POSTGRES_PASSWORD 环境变量。

启动 Docker Compose

要启动 Docker Compose,只需要在包含 Docker Compose 文件的目录中运行以下命令:

此命令将启动所有定义的服务,并将它们连接在一起。您可以使用 Ctrl-C 停止服务。如果您需要在后台运行服务,请使用以下命令:

停止 Docker Compose

要停止 Docker Compose 中的所有服务,请在包含 Docker Compose 文件的目录中运行以下命令:

示例代码

下面是一个使用 Django 和 PostgreSQL 的示例应用程序,它使用 Docker Compose 来定义和运行服务。它包括一个 Web 服务和一个数据库服务,它们都在 Docker 容器中运行。

Docker Compose 文件

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

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

Dockerfile

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

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

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

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

---- - ------

requirements.txt

settings.py

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

Docker Swarm

Docker Swarm 是 Docker 的官方集群管理器,它允许您将多个 Docker 主机连接在一起,以提供高可用性和可扩展性的应用程序。

初始化 Docker Swarm

要使用 Docker Swarm,您需要在一个 Docker 主机上初始化一个 Swarm 集群。要初始化 Swarm 集群,请在 Docker 主机上运行以下命令:

此命令将初始化一个新的 Swarm 集群,并返回一个加入令牌,您可以使用它将其他 Docker 主机加入到集群中。

加入 Docker Swarm

要将另一个 Docker 主机加入到 Swarm 集群中,请在其上运行以下命令:

其中 <token> 是在初始化 Swarm 集群时返回的加入令牌,<ip> 是 Swarm 集群主机的 IP 地址,<port> 是 Swarm 集群主机的端口号。

创建服务

要在 Swarm 集群中创建一个服务,请使用以下命令:

其中 <service_name> 是服务的名称,<image_name> 是要使用的 Docker 镜像名称。

扩展服务

要扩展服务,请使用以下命令:

其中 <service_name> 是服务的名称,<number_of_replicas> 是要扩展到的副本数。

示例代码

下面是一个使用 Flask 和 Redis 的示例应用程序,它使用 Docker Swarm 来定义和运行服务。它包括一个 Web 服务和一个缓存服务,它们都在 Docker 容器中运行。

Docker Compose 文件

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

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

Dockerfile

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

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

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

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

---- - ------

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

requirements.txt

app.py

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

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

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

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

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

结论

在本教程中,我们介绍了如何使用 Docker Compose 和 Docker Swarm 搭建一个 Docker 集群,并使用示例代码演示了如何部署和管理容器。通过使用 Docker 集群,您可以实现高可用性、可伸缩性和容错性的应用程序,并更轻松地管理和部署容器化应用程序。希望本教程对您有所帮助,谢谢阅读!

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

纠错
反馈