본 내용은 Microsoft에서 제공하는 Docker 자습서 내용을 정리한 글입니다.
원문과 내용이 비슷하지만, Docker를 접하기에 아주 유용한 문서로 개인 학습 및 정보공유 차원에서 작성합니다.
Docker 이미지를 공유하려면 Docker 레지스트리를 사용해야 함.
기본 레지스트리는 Docker Hub이며, 사용한 모든 이미지는 여기서 가져옴
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 image ls
를 실행해도 해당 이미지가 표시되지 않음이 문제를 해결하려면 빌드한 기존 이미지에 '태그' 를 지정하여 다른 이름을 지정해야 함
docker login -u <username>
명령을 사용하여 Docker Hub에 로그인
docker tag
명령을 사용하여 gettng-started
이미지에 새 이름을 지정한다. <username>
은 Docker ID로 교체해야 함
$ docker tag getting-started <username>/getting-started
이제 푸시 명령을 다시 시도함. Docker Hub에서 값을 복사하는 경우에는 이미지 이름에 태그를 추가하지 않았으므로 tagname
부분을 삭제할 수 있음.
태그를 지정하지 않으면 Docker에서 latest
라는 태그를 사용함.
```docker
$ docker push <username>/getting-started
```
이미지를 빌드하고 레지스트리에 푸시했으므로, 이 컨테이너 이미지가 표시된 적이 없는 새 인스턴스에서 앱을 실행해 보아야 함. 이렇게 하기 위해선 Play whir Docker를 사용함
Play with Docker에서 새로 푸시된 앱을 시작함
$ docker run -dp 3000:3000 <username>/gettng-started
3000 배지가 표시되면 클릭하고 앱에 수정 내용이 반영된 것을 확인함.