[DevOps] MS 공식문서로 이해하는 Docker - 3 앱 공유

Song-YunMin·2021년 5월 29일
1

DevOps

목록 보기
5/9

본 내용은 Microsoft에서 제공하는 Docker 자습서 내용을 정리한 글입니다.
원문과 내용이 비슷하지만, Docker를 접하기에 아주 유용한 문서로 개인 학습 및 정보공유 차원에서 작성합니다.

Docker 이미지를 공유하려면 Docker 레지스트리를 사용해야 함.

기본 레지스트리는 Docker Hub이며, 사용한 모든 이미지는 여기서 가져옴

리포지토리 만들기

  1. Docker Hub로 이동하여 로그인
  2. 리포지토리 만들기 이용하여 리포 생성

이미지 푸시

  1. Docker Hub에 표시된 푸시 명령을 명령줄에서 실행함. 명령에서는 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

    명령이 실패한 이유는 아래와 같다.

    • 푸시 명령에서 docker/getting-started라는 이미지를 찾았으나 찾지 못함.
    • docker image ls를 실행해도 해당 이미지가 표시되지 않음

    이 문제를 해결하려면 빌드한 기존 이미지에 '태그' 를 지정하여 다른 이름을 지정해야 함

  2. docker login -u <username> 명령을 사용하여 Docker Hub에 로그인

  3. docker tag 명령을 사용하여 gettng-started 이미지에 새 이름을 지정한다. <username> 은 Docker ID로 교체해야 함

    $ docker tag getting-started <username>/getting-started
  4. 이제 푸시 명령을 다시 시도함. Docker Hub에서 값을 복사하는 경우에는 이미지 이름에 태그를 추가하지 않았으므로 tagname 부분을 삭제할 수 있음.
    태그를 지정하지 않으면 Docker에서 latest 라는 태그를 사용함.

    ```docker
    $ docker push <username>/getting-started
    ```

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

이미지를 빌드하고 레지스트리에 푸시했으므로, 이 컨테이너 이미지가 표시된 적이 없는 새 인스턴스에서 앱을 실행해 보아야 함. 이렇게 하기 위해선 Play whir Docker를 사용함

  1. 브라우저에서 Play with Docker를 실행.
  2. Docker Hub 계정으로 로그인
  3. 로그인한 후 왼쪽 사이드바에서 “+ 새 인스턴스 추가” 링크를 클릭합니다. 링크가 표시되지 않으면 브라우저를 좀 더 넓게 만들어야 함. 몇 초 후에 브라우저에서 터미널 창이 열림

  1. Play with Docker에서 새로 푸시된 앱을 시작함

    $ docker run -dp 3000:3000 <username>/gettng-started
  2. 3000 배지가 표시되면 클릭하고 앱에 수정 내용이 반영된 것을 확인함.

Reference

Docker 자습서 3부

profile
고독한 서버 개발 3년차

0개의 댓글