所以我正在评估 Docker 是否适合我们当前的系统,我有几个问题。请注意,我不是专家,我只是想在这里得到一些答案,以便更清楚地了解 Docker 是否适合我们的组织。
因此,我们想部署一个带有 SQL 数据库的 .NET Core 应用程序。我们对基础架构有一些特殊要求,我不会深入讨论 - 但基本上我们不知道它将运行什么操作系统,而且在访问环境时有很多繁琐的手续。
这就是我想使用 Docker 进行部署的部分原因。我们只需要尽可能地从我们这边完全控制,并确保我们在生产服务器上安装了 Docker。我梦想的目标是,每次发布时,我都可以给基础设施公司一个 Docker 镜像,他们只需在生产中运行它的容器即可。
所以我的问题是
1) 我们可能会为应用程序和数据库设置不同的服务器。那么,为它们开发单独的 docker compose 文件并进行单独的部署是一个好主意吗?
2) Docker 容器可以访问容器外部的资源吗?例如,如果服务器上有一个现有的 SMTP 服务器,或者甚至有一些文件位于服务器上的目录中,Docker 容器中的某些东西是否可以访问它?如果可以,它们可以访问哪些资源?它只需要一个 URL 或端口号吗?
3) 有没有什么方法可以配置 docker 镜像的文件?我以为每个环境的每个镜像都会相同,并且每个环境(例如 dev、prod)都会有自己的配置文件
答案1
- 不要将数据库托管在 docker 容器中。这不是一个好的做法。
- 查看卷以将服务器上的文件共享到 docker 容器。还请查看 docker 网络。docker 容器可以访问互联网,因此我认为可以连接到其他服务器。
- 也许还可以研究一下 kubernetes 或 docker swarm :) 听起来像是你可以为公司使用的东西。例如,使用 kubernetes,你可以拥有诸如暂存环境和滚动发布之类的东西