容器化 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 基础知识
- Dockerfile - 使用命令docker build,你可以创建一个镜像
- Docker 图片 - 这是从 docker 文件创建的
- Docker 容器 - 当您对图像执行 docker 运行 时,会创建一个容器。图像的 运行ning 实例是您的容器
Docker Registry - 可以下载基础镜像的地方
就这样吧,
在 unix 服务器上设置 docker。
- 现在您需要创建 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 管道中,您可以快速启动和关闭环境。
我是这个容器化的新手,我想知道 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 基础知识
- Dockerfile - 使用命令docker build,你可以创建一个镜像
- Docker 图片 - 这是从 docker 文件创建的
- Docker 容器 - 当您对图像执行 docker 运行 时,会创建一个容器。图像的 运行ning 实例是您的容器
Docker Registry - 可以下载基础镜像的地方 就这样吧,
在 unix 服务器上设置 docker。
- 现在您需要创建 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 管道中,您可以快速启动和关闭环境。