首页 > 解决方案 > 使用 docker 在非云环境中部署 dotnet core 应用程序

问题描述

我一直在 youtube 上观看有关 docker 及其工作原理的视频。我明白了这个概念,我真的很喜欢它。但是由于我们的代码部署到的环境的性质以及其他一些强制性限制,我不喜欢将我的源代码包含到容器中的想法。顺便说一句,这里是视频的链接

https://youtu.be/vp-mlvn_7tA

观看视频时,我的脑海中突然出现了几个问题;

  1. 是否可以在不将源代码包含到图像中的情况下使用 docker?也许只是将 bin 文件复制到图像中并在其中运行 dotnet 并仍然维护一个小的 docker 图像文件?

  2. 我们的客户不在云平台中,出于安全目的,目前处于封闭网络中。我仍然可以将 docker 容器部署到它们而无需连接到存储库吗?就像来自媒体 (CD/USB) 中的安装程序?

  3. 我们的应用程序是一个用 .NET Core 2.1 编写的微服务应用程序。我们是否需要将每个服务放入自己的容器中?

标签: c#docker.net-core

解决方案


  • 完全可以在不包含源代码的情况下创建图像。在这里,您可以做两种类型的事情。

    1. 在本地发布您的 api 或 webapp,然后从该特定发布的文件中创建图像。
    2. 创建多阶段图像。这里仍然是您的源代码构建到图像中,但它是中间图像。
  • 对于注册表,有以下类型。

    1. 上市
    2. 私人的
    3. 本地或本地。

      • 上面的一些选项(如 dockerhub)只允许将单个图像作为私人免费帐户。
      • 您可以创建自己的本地存储库。
  • 这取决于您,但最好为每个 Web api 提供单独的图像和容器。让我们假设您有两个几乎一起运行的 api,然后您可以同时部署两者。(即使是 docker 也允许暴露多个端口,所以你不必担心)


推荐阅读