개인용 레지스트리의 이미지에서 앱 워크로드 배치
Code Engine으로 개인용 레지스트리(예: 개인용 Docker Hub)에 있는 이미지를 사용하는 앱을 배치하십시오. 앱은 콘솔 또는 CLI에서 작성할 수 있습니다.
시작하기 전에
- 개인용 레지스트리에서 이미지를 가져오려면 먼저 개인용 레지스트리를 작성해야 합니다. 예를 들어 비공개 Docker 허브 레지스트리를 만들려면 Docker 허브 문서를 참조하세요.
- 비공개 레지스트리를 만든 후 이미지를 푸시합니다.
- 액세스 토큰을 설정할 수도 있습니다. 액세스 토큰을 사용하면 비밀번호를 변경하지 않고도 Docker Hub 계정에 대한 액세스 권한을 더 쉽게 부여하고 취소할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.
콘솔을 사용하여 개인용 레지스트리의 이미지를 참조하는 앱 배치
Code Engine 콘솔을 사용하여 개인용 레지스트리에 있는 이미지를 사용하는 애플리케이션을 배치하십시오.
개인용 레지스트리에 있는 이미지를 참조하는 Code Engine 애플리케이션에 대해 작업하려면 먼저 레지스트리에 대한 액세스 권한을 추가하고 이미지를 가져온 후 배치해야 합니다.
- Code Engine 콘솔을 여십시오.
- Let's go 를 선택하십시오.
- 애플리케이션을 선택하십시오.
- 애플리케이션의 이름을 입력하십시오(예:
helloapp). 프로젝트 내에서 고유한 애플리케이션 이름을 사용하십시오. - 사용 가능한 프로젝트 목록에서 프로젝트를 선택하십시오. 프로젝트를 새로 작성할 수도 있습니다. 앱을 배치하려면 선택한 프로젝트가 있어야 합니다.
- 컨테이너 이미지를 선택하고 이미지 구성을 클릭하십시오.
docker.io레지스트리 서버**에 대해 **를 입력하십시오.- 레지스트리 비밀번호 의 경우 레지스트리 비밀번호 만들기를 선택합니다.
- 레지스트리 비밀 생성 페이지에서 레지스트리 소스를 선택합니다. 예를 들면 Docker Hub를 선택하십시오.
- 사용자 이름을 입력하십시오. Docker Hub의 경우 Docker ID입니다.
- 비밀번호를 입력하십시오. Docker Hub의 경우 Docker Hub 비밀번호 또는 액세스 토큰을 사용할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.
- 만들기를 클릭하여 Code Engine 에 대한 레지스트리 암호를 추가합니다.
- 이미지 구성 페이지에서 추가한 레지스트리 비밀 번호가 나열됩니다. 이미지의 레지스트리 비밀 번호를 선택합니다.
- Code Engine 앱에서 참조할 네임스페이스 및 Docker Hub의 이미지 이름을 선택하십시오. 예를 들어
mynamespace를 선택하고 해당 네임스페이스에서hello_repo이미지를 선택하십시오. - 태그 값을 선택하십시오(예:
latest). - 완료를 클릭하십시오. 앱에서 참조할 레지스트리의 이미지를 선택했습니다.
- 앱에 대한 런타임 설정 또는 환경 변수를 수정하십시오. 이러한 옵션에 대한 자세한 정보는 앱의 엔드포인트 가시성 옵션 및 앱 배치 옵션을 참조하십시오.
- 애플리케이션 작성 페이지에서 작성을 클릭하십시오.
- 애플리케이션 상태가 준비로 변경되면 애플리케이션을 테스트할 수 있습니다. 애플리케이션 테스트를 클릭한 후 애플리케이션 테스트 분할창에서 요청 전송을 클릭하십시오. 애플리케이션을 웹 페이지에서 열려면 애플리케이션 URL을 클릭하십시오.
애플리케이션을 배치했으므로 애플리케이션 개정, 실행 중인 인스턴스 및 구성 세부사항에 대한 정보를 확인할 수 있습니다.
앱을 작성하기 전에 레지스트리 액세스를 추가하려면 개인용 컨테이너 레지스트리에 대한 액세스 권한 추가를 참조하십시오.
CLI를 사용하여 개인용 레지스트리의 이미지로 앱 배치
CLI와 함께 ibmcloud ce app create 명령을 사용하여 컨테이너 레지스트리의 이미지를 사용하는 애플리케이션을 배치하십시오.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
개인용 레지스트리에 있는 이미지를 참조하는 Code Engine 애플리케이션에 대해 작업하려면 먼저 레지스트리에 대한 액세스 권한을 추가하고 이미지를 가져온 후 배치해야 합니다.
-
개인용 레지스트리에서 이미지를 가져오려면 먼저 개인용 레지스트리를 작성해야 합니다. 예를 들어 비공개 Docker 허브 레지스트리를 만들려면 Docker 허브 문서를 참조하세요. 비공개 레지스트리를 만든 후 이미지를 푸시합니다. 액세스 토큰을 설정할 수도 있습니다. 액세스 토큰을 사용하면 비밀번호를 변경하지 않고도 Docker Hub 계정에 대한 액세스 권한을 더 쉽게 부여하고 취소할 수 있습니다. 액세스 토큰 및 Docker 허브에 대한 자세한 내용은 액세스 토큰 만들기 및 관리하기를 참조하세요.
-
이미지를 가져오려면 개인용 레지스트리에 대한 액세스 권한을 추가하십시오. 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 -
앱을 작성하고 개인용 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입니다. 여기서REGISTRY및TAG는 선택사항입니다.REGISTRY를 지정하지 않으면 기본값은docker.io입니다.TAG를 지정하지 않으면 기본값은latest입니다. -
앱을 배치한 후에는 앱에 액세스할 수 있습니다. 앱의 URL을 확보하려면
ibmcloud ce app get --name myhelloapp --output url을 실행하십시오.myhelloapp앱에 대해 curl을 실행하면Hello World가 리턴됩니다.curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
다음 단계
-
앱이 배치되면 URL을 통해 앱에 액세스하십시오.
-
사용자 정의 도메인 맵핑 을 작성하여 앱에 지정할 수 있습니다. 사용자 정의 도메인 이름을 사용하여 여러 지역에 앱을 배치하는 방법에 대한 자세한 정보는 고가용성 애플리케이션 구성 을 참조하십시오.
-
이제 앱이 배포되었으므로 앱을 이벤트 중심으로 만드는 것을 고려하세요. 이벤트 구독을 사용하여 주기적 스케줄 로 앱을 트리거하거나 파일 업로드 또는 Kafka 메시지 와 같은 이벤트에 반응하도록 앱을 설정할 수 있습니다.
앱이 배치되면 앱 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나로 배치된 앱을 업데이트하고 참조 코드를 업데이트할 수 있습니다.
-
컨테이너 이미지가 있는 경우 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 저장소를 확인하십시오.