개인용 레지스트리의 이미지에서 앱 워크로드 배치

Code Engine으로 개인용 레지스트리(예: 개인용 Docker Hub)에 있는 이미지를 사용하는 앱을 배치하십시오. 앱은 콘솔 또는 CLI에서 작성할 수 있습니다.

시작하기 전에

  • 개인용 레지스트리에서 이미지를 가져오려면 먼저 개인용 레지스트리를 작성해야 합니다. 예를 들어 비공개 Docker 허브 레지스트리를 만들려면 Docker 허브 문서를 참조하세요.
  • 비공개 레지스트리를 만든 후 이미지를 푸시합니다.
  • 액세스 토큰을 설정할 수도 있습니다. 액세스 토큰을 사용하면 비밀번호를 변경하지 않고도 Docker Hub 계정에 대한 액세스 권한을 더 쉽게 부여하고 취소할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.

콘솔을 사용하여 개인용 레지스트리의 이미지를 참조하는 앱 배치

Code Engine 콘솔을 사용하여 개인용 레지스트리에 있는 이미지를 사용하는 애플리케이션을 배치하십시오.

개인용 레지스트리에 있는 이미지를 참조하는 Code Engine 애플리케이션에 대해 작업하려면 먼저 레지스트리에 대한 액세스 권한을 추가하고 이미지를 가져온 후 배치해야 합니다.

  1. Code Engine 콘솔을 여십시오.
  2. Let's go 를 선택하십시오.
  3. 애플리케이션을 선택하십시오.
  4. 애플리케이션의 이름을 입력하십시오(예: helloapp). 프로젝트 내에서 고유한 애플리케이션 이름을 사용하십시오.
  5. 사용 가능한 프로젝트 목록에서 프로젝트를 선택하십시오. 프로젝트를 새로 작성할 수도 있습니다. 앱을 배치하려면 선택한 프로젝트가 있어야 합니다.
  6. 컨테이너 이미지를 선택하고 이미지 구성을 클릭하십시오.
  7. docker.io레지스트리 서버**에 대해 **를 입력하십시오.
  8. 레지스트리 비밀번호 의 경우 레지스트리 비밀번호 만들기를 선택합니다.
  9. 레지스트리 비밀 생성 페이지에서 레지스트리 소스를 선택합니다. 예를 들면 Docker Hub를 선택하십시오.
  10. 사용자 이름을 입력하십시오. Docker Hub의 경우 Docker ID입니다.
  11. 비밀번호를 입력하십시오. Docker Hub의 경우 Docker Hub 비밀번호 또는 액세스 토큰을 사용할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.
  12. 만들기를 클릭하여 Code Engine 에 대한 레지스트리 암호를 추가합니다.
  13. 이미지 구성 페이지에서 추가한 레지스트리 비밀 번호가 나열됩니다. 이미지의 레지스트리 비밀 번호를 선택합니다.
  14. Code Engine 앱에서 참조할 네임스페이스 및 Docker Hub의 이미지 이름을 선택하십시오. 예를 들어 mynamespace를 선택하고 해당 네임스페이스에서 hello_repo 이미지를 선택하십시오.
  15. 태그 값을 선택하십시오(예: latest).
  16. 완료를 클릭하십시오. 앱에서 참조할 레지스트리의 이미지를 선택했습니다.
  17. 앱에 대한 런타임 설정 또는 환경 변수를 수정하십시오. 이러한 옵션에 대한 자세한 정보는 앱의 엔드포인트 가시성 옵션앱 배치 옵션을 참조하십시오.
  18. 애플리케이션 작성 페이지에서 작성을 클릭하십시오.
  19. 애플리케이션 상태가 준비로 변경되면 애플리케이션을 테스트할 수 있습니다. 애플리케이션 테스트를 클릭한 후 애플리케이션 테스트 분할창에서 요청 전송을 클릭하십시오. 애플리케이션을 웹 페이지에서 열려면 애플리케이션 URL을 클릭하십시오.

애플리케이션을 배치했으므로 애플리케이션 개정, 실행 중인 인스턴스 및 구성 세부사항에 대한 정보를 확인할 수 있습니다.

앱을 작성하기 전에 레지스트리 액세스를 추가하려면 개인용 컨테이너 레지스트리에 대한 액세스 권한 추가를 참조하십시오.

CLI를 사용하여 개인용 레지스트리의 이미지로 앱 배치

CLI와 함께 ibmcloud ce app create 명령을 사용하여 컨테이너 레지스트리의 이미지를 사용하는 애플리케이션을 배치하십시오.

시작하기 전에

개인용 레지스트리에 있는 이미지를 참조하는 Code Engine 애플리케이션에 대해 작업하려면 먼저 레지스트리에 대한 액세스 권한을 추가하고 이미지를 가져온 후 배치해야 합니다.

  1. 개인용 레지스트리에서 이미지를 가져오려면 먼저 개인용 레지스트리를 작성해야 합니다. 예를 들어 비공개 Docker 허브 레지스트리를 만들려면 Docker 허브 문서를 참조하세요. 비공개 레지스트리를 만든 후 이미지를 푸시합니다. 액세스 토큰을 설정할 수도 있습니다. 액세스 토큰을 사용하면 비밀번호를 변경하지 않고도 Docker Hub 계정에 대한 액세스 권한을 더 쉽게 부여하고 취소할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.

  2. 이미지를 가져오려면 개인용 레지스트리에 대한 액세스 권한을 추가하십시오. CLI를 사용하여 개인용 레지스트리에 대한 액세스를 추가하려면 ibmcloud ce secret create --format registry 명령을 사용하여 레지스트리 시크릿을 작성하십시오. Docker 예를 들어 다음 명령은 'https://index.docker.io/v1/' 에 있는 privatedocker 이라는 허브 레지스트리에 대한 레지스트리 액세스를 생성하고 사용자 이름과 비밀번호를 사용합니다.

    ibmcloud ce secret create --format registry --name privatedocker --server 'https://index.docker.io/v1/' --username <Docker_User_Name> --password <Password>
    

    출력 예

    Creating registry secret 'privatedocker'...
    OK
    
  3. 앱을 작성하고 개인용 Docker Hub 레지스트리에 있는 이미지를 참조하십시오. 예를 들면, myhelloapp 액세스 정보를 사용하여 docker.io/privaterepo/helloworld를 참조하는 privatedocker 앱을 작성하십시오.

    ibmcloud ce app create --name myhelloapp --image docker.io/privaterepo/helloworld --registry-secret privatedocker
    

    이 애플리케이션의 이미지 이름 형식은 REGISTRY/NAMESPACE/REPOSITORY:TAG입니다. 여기서 REGISTRYTAG는 선택사항입니다. REGISTRY를 지정하지 않으면 기본값은 docker.io입니다. TAG를 지정하지 않으면 기본값은 latest입니다.

  4. 앱을 배치한 후에는 앱에 액세스할 수 있습니다. 앱의 URL을 확보하려면 ibmcloud ce app get --name myhelloapp --output url을 실행하십시오. myhelloapp 앱에 대해 curl을 실행하면 Hello World가 리턴됩니다.

    curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
    

다음 단계

앱이 배치되면 앱 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나배치된 앱을 업데이트하고 참조 코드를 업데이트할 수 있습니다.

  • 컨테이너 이미지가 있는 경우 OCI(오픈 컨테이너 이니셔티브)표준에 따라 앱을 배포할 때 컨테이너 레지스트리의 위치를 가리키는 이미지에 대한 참조만 제공하면 됩니다. 공용 레지스트리 또는 개인용 레지스트리 의 이미지를 사용하여 앱을 배치할 수 있습니다.

    app create 명령을 사용하여 앱을 작성하고 로컬 또는 저장소 소스에서 컨테이너 이미지를 빌드하도록 --build-source 옵션을 지정했으며 다른 컨테이너 이미지를 가리키도록 앱을 변경하려는 경우에는 먼저 앱에서 빌드의 연관을 제거해야 합니다. 예를 들어, ibmcloud ce application update -n APP_NAME --build-clear 를 실행하십시오. 앱에서 빌드의 연관을 제거한 후 다른 이미지를 참조하도록 앱을 업데이트할 수 있습니다.

  • Git 저장소에 있는 소스 코드로 시작하는 경우, Code Engine에서 한 번의 오퍼레이션으로 소스에서 이미지를 빌드하고 앱을 배치하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 저장소 소스 코드에서 앱 배치를 참조하십시오. 이미지 빌드를 더 많이 제어하려면 앱을 배치하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.

  • 로컬 워크스테이션에 있는 소스 코드로 시작하는 경우, Code Engine에서 하나의 CLI 명령으로 소스에서 이미지를 빌드하고 앱을 배치하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 CLI를 사용하여 로컬 소스 코드에서 앱 배치를 참조하십시오. 이미지 빌드를 더 많이 제어하려면 앱을 배치하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.

    예를 들어, 사용자가 앱에 대한 소스 개발을 진행하는 동안 Code Engine에서 로컬 소스의 빌드를 처리하도록 선택할 수 있습니다. 그런 다음 이미지가 만기되면 원하는 특정 이미지를 참조하도록 배치된 앱을 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.

업데이트된 앱을 배치할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 다운로드되어 배치됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 배치에 사용됩니다.

더 많은 코드 예를 찾고 계십니까? Samples for IBM Cloud Code Engine GitHub 저장소를 확인하십시오.