Можно ли деплоить Docker-приложение на VPS без Docker Hub и сторонних сервисов?

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

В тех обучающих курсах, которые я видел, говорилось о деплое-приложения с помощью Docker Hub или сторонних серверов как само собой разумеющемся способе. Подозрения вызывает то, что ничего не было сказано о таком способе, как деплой напрямую себе на VPS с помощью FTP. Если пошагово, то этот гипотетический способ таков:

  1. Собираем образ у себя на компьютере
  2. Загружаем его на VPS через FTP(S)
  3. Запускаем там контейнер

Возможно, у Вас будет вопрос, чем меня не устраивает загрузка проекта через Docker Hub. Дело в том, что мы добавляем в процесс создания и сопровождения приложения дополнительных посредников, а верее их облачное хранилище - Docker-овское или нет. Если это какой-нибудь учебно-тренировочный или маловажный проект, то нет проблем, а что если это какое-нибудь важное приложение, работающее с секретными данными, да ещё и не своё, а заказанное какой-нибудь крупной компанией? Получается, что используя Docker Hub или GitHub, мы добровольно предоставляем им образ, а зачастую и исходный код своего приложения. Поэтому должен быть какой-то способ, когда между локальным компьютером и VPS посредников нет - просто берём Docker-образ и загружаем его себе на VPS.


Ответы (1 шт):

Автор решения: gbg

docker save - выгружает созданный образ в tar

docker load - делает обратную операцию

После выгрузки в tar, его множно сжать, и отправить, как вы хотите, по FTP на сервер.

Но лучше будет отправить старичка FTP на пенсию, и, не сжимая файл, воспользоваться rsync - так, при многократной досылке одного и того же обновляемого файла, rsync будет передавать только разницу между старым и новым, а сжатие можно включить уже в нем.

Многабукав по теме

→ Ссылка