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

Профессиональные команды разработки легко могут выпускать версии проектов и создавать конвейер CI/CD, за счет хранения образов Docker на удаленном сервере, доступном из любой точки мира под названием container registry, например на Docker Hub, данный реестр контейнеров создан компанией Docker и является главным для Docker.

Есть и другие зеркала Docker hub (docker registry):

При необходимости вы можете развернуть собственное Docker хранилище. Но мы в данном примере, будем использовать непосредственно Dockerhub registry. И так перейдем непосредственно к делу.

Перед упаковкой приложения в образ, необходимо проверить приложение на работоспособность. И, если мы точно уверены, что код работает, пришло время опубликовать его в Интернете, для этого мы соберем отправим образ docker в docker hub.

Создание Dockerfile

Клонируем приложение:

Перейдем в созданный каталог:

В каталоге my_first_bot создадим пустой файл Dockerfile:

Создание Docker image

Сначала войдите в docker hub со своего терминала, используя docker login, вам будет предложено ввести имя пользователя и пароль, и все.

Во-вторых, нам нужно перестроить образ под нашим именем пользователя docker hub и убедиться, что у него есть тег.

Поскольку код не менялся, сборка была очень быстрой, мы просто переназначили его.

Docker push image to dockerhub

Теперь полученный Docker image можно отправить в docker hub и оно будет доступно для всех, но токен по-прежнему не является частью пакета, поэтому любому, кто хочет запустить бота с нашей логикой, потребуется использовать другой собственный токен.

Docker hub предлагает размещать частные изображения за дополнительную плату. Если изображение общедоступное, хостинг бесплатный.

Если я зайду на веб-сайт docker hub, я увижу, что изображение теперь опубликовано там.

Запустим приложение в докер:

Мое приложение представляет из себя простейший телеграм бот, результат его работы можно проверить:

Обсудить в телеграм канале.