![对现有应用程序进行 Docker 化](https://linux22.com/image/749840/%E5%AF%B9%E7%8E%B0%E6%9C%89%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%BF%9B%E8%A1%8C%20Docker%20%E5%8C%96.png)
我对 docker 完全陌生,也不是开发人员。现在我有一个在 上运行的应用程序centos/nginx/dotnetcore
。dotnet core
我有 4 个应用程序,我们使用dotnet appname.dll.
或者 来运行它们systemd
。如果我想将这个应用程序集 docker 化,我应该将 centos 创建为单独的docker
映像,然后将 nginx 创建为其他映像,然后为每个应用程序创建一个映像吗?如果是,我该如何链接它们,还是应该只创建一个映像,并centos/nginx
安装所有 4 个应用程序(在 tar 中)?任何帮助都将不胜感激。
答案1
是的,最好使用多个镜像。每个微服务/进程和每个应用程序。文档称之为解耦应用程序。假设 nginx 是一个代理容器,前面有一个 dotnetcore app 容器。分别对应 4 个应用程序。
通常基于官方容器构建容器,例如 nginx 或点网. 微软构建 .NET core Docker 镜像的步骤和仓库中的样本。
这些镜像可能不是基于 CentOS,但不需要对发行版进行标准化。您只需要一组最小的二进制文件来运行您的程序。例如 chroot,如果您比容器更熟悉它的话。
可以通过多种方式将代理链接到应用程序,具体取决于您决定如何实现容器网络。例如,Kubernetes 可以定义服务并提供入口在它们前面有代理。在此设计中,如果服务由容器编排器提供,则应用程序 nginx 容器可能不是必需的。