容器化 Web 应用程序

Dockerizing a Web Application

我是这个容器化的新手,我想知道 Docker 如何取代虚拟机?

我得到了一个案例研究,其中有 2 个虚拟机,每个虚拟机充当虚拟服务器,一个是开发服务器,另一个是测试服务器,我被要求研究 Docker 如何帮助有效管理工作流程。

在这种情况下,2 个虚拟机是服务器,Docker 替换虚拟机的想法让我很困惑。

谁能帮我理解这个概念。

提前致谢!!

  • 每个docker容器本身就是一个虚拟机意味着每个 容器有自己的 os 将进程与 host.

    隔离

    因此,如果您启动 2 个容器意味着您将 运行宁 2 ubuntu(对于 ex) servers.In 每个容器你可以 运行 你的软件和 expose 对外界的服务。

    如果最终 docker 死了你可以从图像重新启动而不用 安装 OS,与虚拟机不同的应用程序。

    您可以将docker图像传输到其他服务器,就像 导入/导出您的应用程序,唯一的要求是其他 服务器有 docker 服务 运行ning.

  • 如果有 2 个依赖服务 运行ning 作为容器我们可以 link those 内部容器 communication.Like wordpress 作为一个 container 和 mysql 和其他地方一样,两者都应该连接,它 这种情况 docker link 将有助于互连。

    您可以管理 cpu、内存、docker 容器的磁盘,就像 任何管理程序中的虚拟机。

    了解详细信息: https://docs.docker.com/engine/docker-overview/#docker-engine

我不确定如何用 docker 容器完全替换一个服务器,所以我假设您想将 2 个应用程序 运行ning 在 2 个服务器中替换为 1 个服务器 运行每个测试和开发应用程序的 2 个容器。

我先做一些假设,然后才能回答。

  • 首先我假设,您的应用程序是一个简单的 Web 服务,已部署在服务器的 tomcat/IBM websphere 上。
  • 其次,我假设数据库位于测试服务器和开发服务器的不同服务器上。

Docker 基础知识

  1. Dockerfile - 使用命令docker build,你可以创建一个镜像
  2. Docker 图片 - 这是从 docker 文件创建的
  3. Docker 容器 - 当您对图像执行 docker 运行 时,会创建一个容器。图像的 运行ning 实例是您的容器
  4. Docker Registry - 可以下载基础镜像的地方 就这样吧,

  5. 在 unix 服务器上设置 docker。

  6. 现在您需要创建 2 个容器来托管相同的应用程序。为此,您首先需要编写一个 docker 文件,创建一个图像,然后使用该图像启动容器。

示例docker文件如下所示

FROM webspher-liberty17:webProfile7

ENV SERVER_NAME=myapptestserver

RUN ["/bin/bash", "-c", "/opt/ibm/wlp/bin/server create $SERVER_NAME"]

EXPOSE 9080 9443


COPY server.xml jvm.options /opt/ibm/wlp/usr/servers/$SERVER_NAME/
COPY *.war /opt/ibm/wlp/usr/servers/$SERVER_NAME/dropins/

CMD ["/opt/ibm/docker/docker-server", "run", "myapptestserver"]

现在,当您对此 docker 文件进行 docker 构建时,它会创建一个带有 ibm liberty 基础层的映像。 FROM 之后的每个命令都允许您添加一个附加层,因此您可以根据自己的具体情况进行自定义。

为两个应用程序完成上述操作后,实际上您的应用程序有两个变体 运行在同一台服务器上运行,但服务于两个不同的环境。

最棒的是,将它添加到 bamboo/jenkins 中的 CI/CD 管道中,您可以快速启动和关闭环境。