@winser

Какие преимущества у docker?

Прочитал несколько статей, посмотрел видео и хочу разобраться правильно ли я понял.
Сейчас использую виртуальные машины для разработки, ставлю туда веб сервер, базу данных итд
1) Правильно понимаю что докер позволит ускорить процесс начальной настройки, я просто скачиваю нужный контейнер например с postgres и у меня сразу будет ип адрес сервера и я могу подключаться и создавать БД, тоже самое и веб сервер с php например ?
2) Можно будет купив на хостинге linux сервер, быстро переносить туда локальные контейнеры докера, которые при разработке крутились у меня на локальной машине, сейчас для этого нужно полностью с нуля настраивать linux, ставить туда все приложения, с докером я ставлю только докер, а сам веб сервер и база данных будет легко и быстро переноситься с локального компа на удаленный сервер ?
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ответы на вопрос 3
trapwalker
@trapwalker
Программист, энтузиаст
Основное, что дает докер - это изоляцию частей вашей системы друг от друга. За счет этого гораздо проще всё настраивать.
- БД настраивается в отдельном докер-контейнере. В большинстве случаев вы используете стандартный образ и подаете ему только настройки.
- nginx настраивается в отдельном контейнере вместе с certbot'ом, который будет обновлять вам сертификат ssl.
- бэкенд поднимаетя в отдельном контейнере на стандартном порту (и порт не будет конфликтовать с другими бэкендами в других контейнерах на том же порту.
- другие какие-то бэкенды и админки будут рядом сидеть в отдельны контейнерах и не будут конфликтовать друг с другом версиями библиотек. интерпретаторов и чего угодно
- компиляция и сборка тоже делаются в контейнере, который не запускается в прод, но обеспечивает иоляцию этого процесса так, что другие разработчики легко приступят к работе без долгой и уникальной настройки своего рабочего места.

Весь набор нужных контейнеров для проекта конфигурируется docker-compose файлом и в большинстве случаев при правильной настойке чтобы поднять дев-стенд или продакшн вам достаточно будет склонировать репу на комп и скомандывать docker-compose up.

Про слои и переиспольование почитайте в документации к докеру. Докер-образы наследуются накладывая свои изменения слоями. Это экономит место на диске и упрощает всю систему минимизируя число возможных состояний.
Вся файловая система контейнера не примонтированная извне будет стёрта и забыта при перезапуске контейнера. Так можно быть уверенным, что ваш бэкенд не оставляет лишних неучтенных побочных эффектив. Это упрошает отладку и поиск проблем.
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Основное преимущество докера - это не про "быстро переносить" (потому что столь же легко и быстро можно мигрировать между серверами и виртуалки), а про "написал конфиг, запустил - и на новом месте получилось то же самое". Ну и про переиспользование слоёв для экономии места. И про "поменял версию образа, перезапустил - и оно само обновилось".
Ответ написан
@Drno
1. Да
2. Да

Но мой выбор - lxc контейнеры, тк не всё в докер работает удобно. да и в докер надо пихать каждый сервис отдельно - а тут сразу настроенная машина)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы