如何使用Docker在服务器上部署Web应用程序?
开发运营 (DevOps) 的痛苦
只要开发人员在一个地方开发应用程序并在另一个地方部署它们,DevOps 就一直是一个问题。
您知道那种感觉 - 您构建了一个可以在本地计算机上完美运行的应用程序,并很高兴将其向全世界开放。您部署到生产服务器并...错误。
你不知道为什么,问题可能只是一百万件事中的一件。这个问题代价高昂、令人沮丧,并且破坏了各地系统管理员和开发人员之间的友谊。
有几种技术试图解决这个问题。传统的方法是使用虚拟机,但新的改进方法是使用 Docker 容器。
我将解释如何进行Web应用程序docker部署。我们将首先了解 Docker 是什么(和不是)、容器是什么以及如何使用它们。
什么是 Docker?
首先,让我们定义一下我们正在谈论的内容。
Docker 是一种开源技术,可将您的应用程序打包到“容器”中。该容器包含所有应用程序代码以及所有库和依赖项。这允许您在任何运行 Docker 的机器上运行此容器,并且每次都运行完全相同。
那么 Docker Web 应用程序与虚拟机有何不同?
这是对 Docker 应用程序的常见误解之一。尽管虚拟机看起来做同样的事情,但实际上它们有很大不同。
虚拟机以不同的方式解决同一问题。虚拟机是整个操作系统的虚拟实例——可以是 Linux 或 Windows。如果您在 Linux 虚拟实例中开发应用程序,则可以在运行相同 Linux 虚拟实例的任何地方运行该应用程序。
听起来不错,对吧?是的,这个方法有效并且已经成功使用多年。但有一个问题 - 如果您想部署单个 Web 应用程序,则需要运行整个虚拟操作系统。这是非常昂贵的,特别是当您有很多应用程序要运行时。
Docker 通过将应用程序放置在所有运行在同一操作系统上的虚拟容器中来解决这个问题。每个 docker 容器都包含运行应用程序所需的所有代码、库和依赖项(例如配置文件)。这节省了大量的存储空间、时间、处理能力和复杂性。容器与其他容器共享主机内核。
为什么使用 Docker Web 应用程序?
正如我在简介中所说,许多公司使用 Docker 来开发 Web 应用程序。 Docker Web App 是直接从 Web 浏览器启动应用程序的强大基础。
Docker 的主要卖点是:
- Docker 允许您在与其他技术相同数量的服务器上运行更多独立的应用程序。
- 它可以轻松开发封装的、可立即运行的应用程序 - 将所有内容发送到包含所有应用程序的库和依赖项的“容器”中。
- 这使得管理应用程序并将其部署到实时服务器的整个过程变得更容易、更安全。您可以修改 docker 应用程序,使用 docker images 命令将新的 docker 映像推送到存储库,然后从任何地方运行新应用程序。
将所有这些放在一起,您就拥有了一个非常有趣的产品,它将使您的生活(以及您与系统管理员的关系)变得更加轻松。
如何使用Docker容器进行Docker应用程序部署?
以下是使用 Docker 开发和部署 Web 应用程序的基本流程:
- 在您要使用的机器上安装 Docker;
- 在 Docker Hub 中设置注册表;
- 启动 Docker 构建来创建 Docker 镜像;
- 设置你的“Dockerized”机器;
- 部署生成的docker镜像或应用程序。
在您的计算机上安装 Docker
Docker 可以轻松地在任何地方运行应用程序,但这些地方需要 Docker 才能运行。根据您管理的环境类型,存在三种主要的 Docker 变体:
- Docker 企业版 (Docker EE);
- Docker 社区版(Docker CE);
- Docker 云。
在 Mac 上,在 Windows、Linux、AWS 和 Azure 上轻松安装 Docker。一旦您准备好要使用并运行的所有机器,您就可以开始开发和部署了。
查看 Docker 安装手册,了解如何将其安装到本地计算机和服务器上。
在 Docker Hub 中设置注册表
要轻松分发您的应用程序,您需要共享它。
Docker Hub 就像 Docker 容器的 GitHub。有数以千计的应用程序和示例可供您使用。要设置您自己的公共或私有存储库以开始使用您的应用程序,请访问 Docker Hub 网站。
您可以使用集线器将应用程序中的更改推送和拉取到不同的计算机。还有许多工具可以自动化此过程(稍后会详细介绍)。
设置“Docker 化”机器
下一步是准备 Docker 环境来运行您的应用程序。您可以使用命令行和几种不同的工具来完成此操作。
该虚拟机负责设置所讨论的容器。您还可以做一些其他很酷的事情,例如设置多个应用程序实例并使用负载均衡器自动将流量发送到云服务器上的不同版本。
在本地计算机上设置它与设置 Docker 化云服务器不同。查看官方 Docker 教程,了解适合您环境的 docker 命令。
创建 Docker 镜像
Docker 容器是从 Docker 镜像创建的。要将应用程序部署到不同的计算机,您需要创建一个 Docker 镜像来发送给它们。这是使用 Dockerfile 完成的
Dockerfile 通常长约 3-30 行,包含构建 Docker 映像所需的所有命令。设置 Dockerfile 的方法有很多种,最好在设置之前了解 Docker 部署最佳实践。
以下是文档中的一个简单的 Dockerfile 示例:
` FROM docker/whalesay:latest
♽ y 更新 && apt-get 安装- y 财富
CMD /usr/games/fortune -a | owsay
查看文档以了解要在 Dockerfile 中放入哪些内容。
准备好 Dockerfile 后,您可以使用构建命令行工具来创建映像。以下是控制台的示例:
![]()
应用程序的 Docker 部署
现在您已经拥有正在运行的 Docker 计算机、设置了 Docker Hub 存储库并创建了 Docker 映像,您就可以在 部署应用程序 中进行部署了机器。
首先,将您的应用程序推送到存储库。您会发现 docker login 和 docker push 命令在这里很有用。请参阅此处的示例来了解如何执行此操作。
接下来,将应用程序从存储库拖动到另一台计算机。您可以使用 docker run 命令来完成所有这些操作。自动查找、拉取并打开您的新应用程序。
就是这个!以下是使用 Docker 轻松将应用程序部署到多台计算机的步骤。
自动进程
显然您不希望每次对应用程序进行更改时都运行所有这些 docker 命令。幸运的是,有许多工具可用于简化工作流程并自动化部署 Docker 应用程序的整个过程。
一些示例是:
- Google Kubernetes;
- Dockersh;
- 编写 Docker;
- 普罗米修斯;
- 还有更多!
开始使用 Docker,您将了解您想要自动化哪些部分。服务器的数量和应用程序的类型将决定您的 Docker 部署策略。
Docker 部署概述
Docker 是目前一项热门技术,这是有充分理由的。今天我们了解了如何使用 docker 来部署网站或应用程序,让生活变得更轻松,节省金钱和时间,也许还可以挽救系统管理员和开发人员之间的一些友谊。作者:成诚
链接:https://juejin.cn/post/7234430377909927973
来源:稀土掘金
版权归作者所有。商业转载请联系作者获取授权。非商业转载请注明出处。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网