Образ в облаке: DockerHub

DockerHub — облачный репозиторий docker-образов. Вы уже подключались к этому сервису: ваш Docker скачивал оттуда готовые образы сначала для тестирования (образ hello-world), а потом и для практической работы (базовый слой для образа Yatube был взят именно с DockerHub).
На DockerHub удобно хранить и собственные образы.
Зарегистрируйтесь в DockerHub
image
После регистрации обязательно верифицируйте свой почтовый адрес, без этого вы не сможете загрузить образ на DockerHub.
Зайдите на вкладку Repositories:
image
Здесь пока пусто, но у вас уже есть, чем наполнить этот раздел.
Имя загружаемого на DockerHub образа должно выглядеть так: username/imagename:tag.
username — ваше имя пользователя на DockerHub.
imagename — произвольное имя образа. Оно имеет ограничение в 128 символов и не может начинаться с точки или тире.
tag — необязательная, но очень полезная часть имени. Применение тегов даёт возможность загружать в облако различные версии одного и того же образа. Например, на DockerHub существует пользователь billglasses, его репозиторий может выглядеть так:
billglasses/gates:v1.1985
billglasses/gates:v2.1987
billglasses/gates:v2.11.1989
billglasses/gates:v3.1990
При обращении к образу можно указывать тег: docker pull billglasses/gates:v2.11.1989 . Если вы не укажете тег, то он будет billglasses/gates:latest и установится последняя версия этого образа.

Загрузка образа на DockerHub

Например, пользователь billglasses решил загрузить в репозиторий определённую версию образа gates.
Для этого он должен:
  1. Локально создать образ с нужным названием и тегом:
    Скопировать кодBASH
    docker build -t billglasses/gates:v2.11.1989 .
  2. Авторизоваться через консоль:
    Скопировать кодBASH
    docker login # а можно сразу указать имя пользователя docker login -u billglasses
    В GitBash на Windows команда docker login может не сработать. Тогда поможет команда winpty docker login.
  3. Загрузить образ на DockerHub:
    Скопировать кодBASH
    docker push billglasses/gates:v2.11.1989
Загрузите образ с проектом Yamdb в свой репозиторий на DockerHub. Проследите, чтобы его имя соответствовало правилам DockerHub, иначе загрузить образ не удастся.
Можно собрать новый образ с необходимым для загрузки именем. А можно создать копию существующего образа и дать ей нужное имя; это делается командой tag:
Скопировать кодDOCKER
# billglasses создаёт копию образа door # и присваивает новому образу имя billglasses/gates:v1.1985 docker tag door billgates/gates:v1.1985 # ...и удаляет образ door, чтобы не запутаться в версиях и копиях docker rmi door
Создайте образ с нужным именем, залогиньтесь через консоль и загрузите образ на DockerHub.
Зайдите на DockerHub через браузер:
image
Образ появится в DockerHub Registry и будет доступен для загрузки.
Если требуется изменить образ — нужно локально внести изменения в докерфайл, пересобрать образ и выполнить команду docker push <imagename>: образ обновится на DockerHub.
А для того, чтобы обновить образ, который лежит на сервере — обновите образ на DockerHub и выполните на сервере команду docker pull <imagename>. Образ скачается на сервер, останется только запустить контейнер.

Полезное на DockerHub

По умолчанию ваши образы на DockerHub открыты и доступны любому пользователю, но можно создать и приватный репозиторий.
Можно связать ваш аккаунт на DockerHub с аккаунтом GitHub и настроить автоматическую сборку образа при изменении Dockerfile в репозитории на GitHub.
image