使用Docker在非云环境中部署dotnet核心应用

时间:2018-10-13 22:00:34

标签: c# docker .net-core

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

https://youtu.be/vp-mlvn_7tA

观看视频时脑海中浮现出几个问题;

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

  2. 出于安全考虑,我们的客户不在云平台中,目前处于封闭网络中。我是否仍可以在无需连接存储库的情况下向其部署Docker容器?就像来自媒体(CD / USB)中的安装程序一样?

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

2 个答案:

答案 0 :(得分:1)

  • 完全可以在不包含源代码的情况下创建图像。 您可以执行两种操作。

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

    1. 公共
    2. 私人
    3. 本地或本地。

      • 上面的某些选项(例如dockerhub)仅允许将单个映像作为私有帐户提供给免费帐户。
      • 您可以创建自己的本地存储库。
  • 这由您决定,但是每个Web api都有单独的图像和容器非常好。让我们假设您有两个几乎可以同时运行的api,然后就可以部署它们。 (甚至docker都允许公开多个端口,因此您不必担心)

答案 1 :(得分:0)

  1. 取决于您的应用,但应该可以。

  2. 您可以创建本地注册表来存储图像。

  3. 每个服务都应在其自己的容器中运行。

相关问题