我是否应该为每个服务器设置单独的 docker compose 文件?

我是否应该为每个服务器设置单独的 docker compose 文件?

所以我正在评估 Docker 是否适合我们当前的系统,我有几个问题。请注意,我不是专家,我只是想在这里得到一些答案,以便更清楚地了解 Docker 是否适合我们的组织。

因此,我们想部署一个带有 SQL 数据库的 .NET Core 应用程序。我们对基础架构有一些特殊要求,我不会深入讨论 - 但基本上我们不知道它将运行什么操作系统,而且在访问环境时有很多繁琐的手续。

这就是我想使用 Docker 进行部署的部分原因。我们只需要尽可能地从我们这边完全控制,并确保我们在生产服务器上安装了 Docker。我梦想的目标是,每次发布时,我都可以给基础设施公司一个 Docker 镜像,他们只需在生产中运行它的容器即可。

所以我的问题是

1) 我们可能会为应用程序和数据库设置不同的服务器。那么,为它们开发单独的 docker compose 文件并进行单独的部署是一个好主意吗?

2) Docker 容器可以访问容器外部的资源吗?例如,如果服务器上有一个现有的 SMTP 服务器,或者甚至有一些文件位于服务器上的目录中,Docker 容器中的某些东西是否可以访问它?如果可以,它们可以访问哪些资源?它只需要一个 URL 或端口号吗?

3) 有没有什么方法可以配置 docker 镜像的文件?我以为每个环境的每个镜像都会相同,并且每个环境(例如 dev、prod)都会有自己的配置文件

答案1

  1. 不要将数据库托管在 docker 容器中。这不是一个好的做法。
  2. 查看卷以将服务器上的文件共享到 docker 容器。还请查看 docker 网络。docker 容器可以访问互联网,因此我认为可以连接到其他服务器。
  3. 也许还可以研究一下 kubernetes 或 docker swarm :) 听起来像是你可以为公司使用的东西。例如,使用 kubernetes,你可以拥有诸如暂存环境和滚动发布之类的东西

相关内容