연습 - 마이크로 서비스 이미지를 Docker Hub 푸시
Kubernetes가 컨테이너 이미지를 만들려면 컨테이너 이미지를 가져올 위치가 필요합니다. Docker Hub는 Docker 이미지를 업로드하는 중앙 위치입니다. Kubernetes를 비롯한 많은 제품은 Docker Hub의 이미지를 기반으로 컨테이너를 만들 수 있습니다.
참고 항목
Docker 및 .NET SDK가 미리 설치된 GitHub Codespace에서 이 연습을 완료합니다. 자체 개발 환경에서 이러한 기술을 사용하는 경우 이 같은 필수 구성 요소가 설치되어 있는지 확인합니다.
개발 환경 열기
연습을 호스팅하는 GitHub 코드 공간을 사용하거나 Visual Studio Code에서 로컬로 연습을 완료하도록 선택할 수 있습니다.
코드스페이스를 사용하려면 이 Codespace 만들기 링크를 사용하여 미리 구성된 GitHub Codespace를 만듭니다.
GitHub가 코드 공간을 만들고 구성하는 동안 이 프로세스는 몇 분 정도 걸립니다. 완료되면 이 모듈의 나머지 부분에 사용되는 코드가 /dotnet-kubernetes 디렉터리에 있습니다.
Visual Studio Code를 사용하려면 리포지토리를 https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative 로컬 컴퓨터에 복제합니다. 다음 작업:
- Visual Studio Code에서 Dev Container를 실행하기 위한 시스템 요구 사항을 설치합니다.
- Docker가 실행 중인지 확인합니다.
- 새 Visual Studio Code 창에서 복제된 리포지토리의 폴더를 엽니다.
- Ctrl+Shift+P를 눌러 명령 팔레트를 엽니다.
- 검색: >개발 컨테이너: 컨테이너에서 다시 빌드 및 다시 열기
- 드롭다운에서 eShopLite - dotnet-kubernetes 를 선택합니다. Visual Studio Code는 개발 컨테이너를 로컬로 만듭니다.
codespace에서 컨테이너를 만들어 Docker 이미지 확인
Contoso Shop 프로젝트에는 두 개의 컨테이너가 있습니다. 이미지를 Docker Hub로 푸시하기 전에 이미지를 사용하여 codespace에서 컨테이너를 만들어 보겠습니다. 컨테이너를 만들고 실행한 후에는 Contoso 회사 웹 사이트를 찾아 마이크로 서비스가 정상으로 실행되고 있는지 확인할 것입니다.
다음 단계에 따라 codespace에서 Docker 컨테이너를 만들고 실행합니다.
터미널 탭으로 전환하고 다음 명령을 실행하여 코드 루트로 이동합니다.
cd dotnet-kubernetes
다음 명령을 실행하여 컨테이너를 빌드합니다.
dotnet publish /p:PublishProfile=DefaultContainer
컨테이너를 빌드하는 데 시간이 걸릴 수 있습니다.
다음 명령을 실행하여 앱을 실행하고 컨테이너를 연결합니다.
docker compose up
프런트 엔드 서비스를 테스트하려면 포트 탭으로 전환한 다음 프런트 엔드 포트의 로컬 주소 오른쪽에 있는 지구본 아이콘을 선택합니다. 브라우저에 홈 페이지가 표시됩니다.
제품을 선택합니다. 카탈로그에는 Contoso의 상품이 표시됩니다.
웹 사이트를 닫고 터미널 탭으로 돌아간 다음 Ctrl + C를 누릅니다. Docker
compose
에서 컨테이너를 중지합니다.
Docker Hub에 로그인
Docker Hub에 이미지를 업로드하는 다음 단계는 Docker Hub에 로그인하는 것입니다. 명령 프롬프트에서 다음 명령을 입력합니다.
docker login
중요합니다
Docker 계정을 만들 때와 동일한 사용자 이름 및 암호를 사용합니다. 필요한 경우 Docker 허브 웹 사이트를 방문하여 암호를 재설정할 수 있습니다.
Docker Hub에 이미지 업로드
Docker 사용자 이름으로 만든 Docker 이미지에 태그를 다시 적용하거나 이름을 변경하는 다음 코드를 입력합니다.
docker tag store [YOUR DOCKER USER NAME]/storeimage docker tag products [YOUR DOCKER USER NAME]/productservice
그런 다음, 마지막으로 Docker 이미지를 Docker Hub에 업로드하거나 푸시합니다.
docker push [YOUR DOCKER USER NAME]/storeimage docker push [YOUR DOCKER USER NAME]/productservice
인증 오류가 발생하면
docker logout
을 실행한 다음docker login
을 실행하여 다시 인증할 수 있습니다.
이 연습에서는 Dockerfiles 및 Docker Compose를 사용하여 두 개의 Docker 이미지와 컨테이너를 만들고 해당 이미지를 Docker Hub에 푸시했습니다.
이제 Kubernetes를 사용하여 Contoso의 마이크로 서비스 배포를 관리할 준비가 되었습니다.