성실한 사람이 되자

성실하게 글쓰자

This is spear

Tools

4. 도커를 이용한 앱 공유(share App on Docker)

Imaspear 2020. 6. 27. 03:04
728x90

 

 

Docker 이미지를 공유하려면 Docker 레지스트리를 사용해야합니다. 기본 레지스트리는 Docker Hub이며 우리가 사용한 모든 이미지의 출처입니다.

 

 

REPO 생성

이미지를 푸시하려면 먼저 Docker Hub에서 저장소를 만들어야합니다.

  1. Docker Hub로 이동하여 필요한 경우 로그인하세요.
  2. 리포지토리 생성 버튼을 클릭 합니다.
  3. 리포지토리 getting-started 이름 을 사용하십시오. Public 으로 생성해야합니다.
  4. 만들기 버튼을 클릭하세요

 

페이지 오른쪽을 보면 Docker 명령 이라는 섹션이 나타납니다 . 이 리포지토리로 푸시하기 위해 실행해야하는 명령 예를 제공합니다.

 

 

도커 레포지토리를 보여주는 화면입니다. Create Repository 버튼을 클릭하면 됩니다. 

 

 

 

 

 

이름을 작성하고 제일 밑에 버튼으로 생성하면 됩니다. 

 

 

 

 

레포지토리를 생성 완료한 화면입니다. 

 

 

생성 완료!

 

 

 

이미지 추진

명령 행에서 Docker Hub에 표시되는 push 명령을 실행하십시오. 명령은 "docker"가 아닌 네임 스페이스를 사용합니다.

 

docker push docker/getting-started 
The push refers to repository [docker.io/docker/getting-started] 
An image does not exist locally with the tag: docker/getting-started

 

push를 실패한 이유는 push 명령이 docker / getting-started라는 이미지를 찾았지만 찾지 못했습니다. docker image ls를 실행하면 둘 중 하나도 표시되지 않습니다.

 

이 문제를 해결하려면 기존 이미지에 "태그"를 붙여 다른 이름을 지정해야합니다.

 

명령을 사용하여 Docker Hub에 로그인하십시오 

docker login -u YOUR-USER-NAME.

 

 

사용 docker tag주고받는 명령을 getting-started이미지에 새 이름을. YOUR-USER-NAMEDocker ID 로 교체하십시오 .

docker tag getting-started YOUR-USER-NAME/getting-started

 

이제 푸시 명령을 다시 시도하십시오. Docker Hub에서 값을 복사하는 tagname경우 이미지 이름에 태그를 추가하지 않았으므로 부분을 삭제할 수 있습니다 . 태그를 지정하지 않으면 Docker는이라는 태그를 사용합니다 latest.

docker push YOUR-USER-NAME/getting-started

 

 

 

새 인스턴스에서 이미지 실행

이제 이미지가 빌드되어 레지스트리로 푸시되었으므로이 컨테이너 이미지를 본 적이없는 새로운 인스턴스에서 앱을 실행 해 봅시다! 이를 위해 Play with Docker를 사용합니다.

 

  1. 브라우저를 열어 Docker  재생 하십시오 .
  2. Docker Hub 계정으로 로그인하십시오.
  3. 로그인 한 후 왼쪽 바에서 "+ ADD NEW INSTANCE"링크를 클릭하십시오. 보이지 않으면 브라우저를 좀 더 넓게 만드십시오. 몇 초 후에 브라우저에 터미널 창이 열립니다.
  4. 터미널에서 새로 푸시 한 앱을 시작하십시오.이미지가 내려 져서 결국 시작되는 것을 볼 수 있습니다!
  5. docker run -dp 3000:3000 YOUR-USER-NAME/getting-started

 

 

요약

이 섹션에서는 이미지를 레지스트리로 푸시하여 이미지를 공유하는 방법을 배웠습니다. 그런 다음 새로운 인스턴스로 이동하여 새롭게 푸시 된 이미지를 실행할 수있었습니다. CI 파이프 라인에서는 파이프 라인이 이미지를 만들어 레지스트리로 푸시 한 다음 프로덕션 환경에서 최신 버전의 이미지를 사용할 수있는 CI 파이프 라인에서 매우 일반적입니다.