Упражнение. Отправка образа микрослужбы в Docker Hub

Завершено

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

Примечание.

Это упражнение будет выполнено в GitHub Codespace с предварительно установленной программой Docker и пакетом SDK для .NET. При использовании этих методов в собственной среде разработки убедитесь, что установлены эти предварительные требования.

Открытие среды разработки

Вы можете использовать пространство кода GitHub, в котором размещено упражнение, или выполнить упражнение локально в Visual Studio Code.

Чтобы использовать пространство кода, создайте предварительно настроенное пространство GitHub Codespace с помощью этой ссылки на создание Codespace.

Процесс занимает несколько минут, пока GitHub создает и настраивает пространство кода. После завершения код, используемый для остальной части этого модуля, находится в каталоге /dotnet-kubernetes .

Чтобы использовать Visual Studio Code, клонируйте репозиторий https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative на локальный компьютер. Затем:

  1. Установите все системные реквименты для запуска контейнера разработки в Visual Studio Code.
  2. Убедитесь, что Docker запущен.
  3. В новом окне Visual Studio Code откройте папку клонированного репозитория
  4. Нажмите клавиши CTRL SHIFT++P, чтобы открыть палитру команд.
  5. Поиск: контейнеры разработки: >перестроение и повторное открытие в контейнере
  6. Выберите eShopLite — dotnet-kubernetes в раскрывающемся списке. Visual Studio Code создает контейнер разработки локально.

Проверка образов Docker путем создания контейнеров в пространстве кода

В проекте Contoso Shop существует два контейнера. Прежде чем отправлять образы в Docker Hub, давайте создадим их для создания контейнеров в пространстве кода. После создания и запуска контейнеров мы сможем просмотреть веб-сайт компании Contoso и убедиться, что микрослужбы выполняются ОК.

Выполните следующие действия, чтобы создать и запустить контейнеры Docker в пространстве кода.

  1. Перейдите на вкладку ТЕРМИНАЛА и выполните следующую команду, чтобы перейти в корень кода:

    cd dotnet-kubernetes
    
  2. Выполните следующую команду, чтобы создать контейнеры:

    dotnet publish /p:PublishProfile=DefaultContainer
    

    Для сборки контейнеров может потребоваться некоторое время.

  3. Выполните следующую команду, чтобы запустить приложение и подключить контейнеры:

    docker compose up
    
  4. Чтобы проверить интерфейсную службу, перейдите на вкладку "ПОРТЫ ", а затем справа от локального адреса порта переднего плана выберите значок глобуса. В браузере отображается домашняя страница.

  5. Выберите Продукты. В каталоге отображаются товары Компании Contoso.

  6. Закройте веб-сайт, вернитесь на вкладку ТЕРМИНАЛА и нажмите клавиши CTRL + C. Docker compose останавливает контейнеры.

Вход в Docker Hub

Следующий шаг при отправке образов в Docker Hub — вход в Docker Hub. В командной строке введите следующую команду:

docker login

Внимание

Используйте то же имя пользователя и пароль, что и при создании учетной записи Docker. При необходимости вы можете перейти на веб-сайт Docker Hub, чтобы сбросить пароль.

Загрузка образов в Docker Hub

  1. Введите следующий код для повторного тега или переименования образов Docker, созданных под именем пользователя Docker.

    docker tag store [YOUR DOCKER USER NAME]/storeimage
    docker tag products [YOUR DOCKER USER NAME]/productservice
    
  2. Наконец, отправьте образ Docker в Docker Hub.

    docker push [YOUR DOCKER USER NAME]/storeimage
    docker push [YOUR DOCKER USER NAME]/productservice
    

    Если вы получаете ошибку проверки подлинности, за ним docker login можно выполнить docker logout повторную проверку подлинности.

В этом упражнении вы использовали Dockerfiles и docker compose для создания двух образов и контейнеров Docker и отправки этих образов в Docker Hub.

Теперь вы готовы использовать Kubernetes для управления развертыванием микрослужб Contoso.