Назад | Перейти на главную страницу

Должен ли я иметь отдельные файлы для создания докеров для каждого сервера?

Итак, я оцениваю докер для нашей текущей системы, и у меня есть пара вопросов. Обратите внимание, я не эксперт, мне просто нужны ответы, чтобы попытаться получить более четкое представление о том, работает ли Docker в нашей организации.

Итак, мы хотим развернуть приложение .NET Core с базой данных SQL. У нас есть некоторые особые требования к нашей инфраструктуре, которые я не буду вдаваться в подробности, но в основном мы не знаем, на какой ОС она будет работать, и много бюрократии при получении доступа к среде.

Это одна из причин, по которой я хочу развернуть с помощью Docker. Просто имейте как можно больше возможностей для полного контроля с нашей стороны и просто убедитесь, что Docker установлен на prod-сервере. Моя мечта была бы в том, чтобы для каждого релиза я мог просто дать инфраструктурной компании образ докера, и они просто запустили его контейнер в производственной среде.

Итак, мои вопросы

1) Вероятно, у нас будут разные серверы для приложения и для базы данных. Тогда стоит ли разрабатывать для них отдельные файлы компоновки докеров и просто иметь отдельные развертывания?

2) Могут ли контейнеры Docker получать доступ к внешним ресурсам вне контейнера? Так, например, если есть существующий SMTP-сервер или даже некоторые файлы, находящиеся в каталоге на сервере, сможет ли что-то внутри контейнера докера получить к нему доступ? Если да, то к каким ресурсам они могут получить доступ? Нужен ли только URL-адрес или номер порта?

3) Есть ли способ настроить файл для образа докера? Я думал, что каждое изображение для каждой среды будет одинаковым, и каждая среда (например, dev, prod) будет иметь свой собственный файл конфигурации

  1. Не размещайте базы данных в контейнере докеров. Это плохая практика.
  2. Посмотрите тома для обмена файлами на сервере с контейнером докеров. Посмотрите также на сети докеров. Контейнер докеров может иметь доступ в Интернет, поэтому я думаю, что можно будет подключиться к другим серверам.
  3. Может быть, также стоит заглянуть в kubernetes или docker swarm :) похоже на то, что вы могли бы использовать для своей компании. С кубернетами у вас может быть что-то вроде промежуточных сред и скользящих выпусков, например