본문 바로가기

Container/생활코딩 Docker

[Docker] 내가 만든 image를 Docker Hub에 Push시켜 공유하자

반응형

🔊 해당 포스팅은 이고잉님의 생활코딩 오픈튜토리얼의 Docker 입문 수업을 듣고 제 개인적으로 정리하는 목적하에 작성되는 포스팅입니다. 보다 자세한 강의는 여기를 참고해주세요.

 

이번 포스팅에서는 내가 만든 이미지를 Docker Hub이라는 레지스트리 사이트에 Push 시켜서 공유하는 방법에 대해 알아보자. Docker Hub은 Docker 포스팅 초반에도 소개했다시피 누구나 자기만의 이미지를 만들어 공유할 수 있고 pull해서 다운로드 받을 수 있는 사이트이다. 마치 Github의 public 레포지토리 처럼 말이다.

 

Docker


가장 먼저 해야할 것은 Docker Hub 사이트로 가서 회원가입을 하고 Repository 탭에 들어가서 내가만든 이미지를 push 시킬 개인 레포지토리를 생성한다. 이 때 모두가 볼 수 있는 Public, 나만 볼 수 있는 Private 유형 2가지 중 선택할 수 있다. 참고로 이 때 만드는 레포지토리의 이름은 나중에 우리가 만든 이미지를 push 시킬 때 일치시켜야하므로 웬만하면 push 시킬 이미지를 상징적으로 나타내는 이름으로 해주는 것이 바람직하다.

 

Docker Hub에서 레포지토리를 만들자

 

필자는 jo181 이 Docker Hub 가입할 때 사용하는 아이디이고 레포지토리의 tag 이름은 python3라고 명시했다. 이제 터미널로가서 간단하게 ubuntu에 python3을 설치한 컨테이너를 commit 명령어로 이미지화 시켜보자. 그리고 이 이미지를 위에 만든 내 레포지토리에 push 시켜보자. 아래 터미널 화면은 ubuntu에 python3을 설치한 컨테이너를 commit 명령어로 이미지화 시킨 후 결과이다.

 

 

위 명령어 중 commit 명령어를 사용할 때 레포지토리 이름을 작성하는데, 이 때 레포지토리 이름을 Docker Hub에 push 시킬 레포지토리 이름과 동일하게 명시해주어야 한다. 필자는 현재 jo181/python3 라는 레포지토리 이름이기 때문에 위와 같이 작성하였다. 

 

이제 우리가 만든 이미지인 jo181/python3 레포지토리 이름의 tag가 3.0 이라는 이미지를 Docker Hub에 push해보자. 그렇게 하기위해서 가장 먼저해야 할 일은 터미널에서 Docker Hub에 로그인을 해주어야 한다. 명령어는 다음과 같으며 아이디와 비밀번호는 처음에 Docker Hub에 회원가입할 때 만든 것들을 입력시킨다. 잘 로그인이 된다면 터미널에서 아래와 같이 출력된다.(필자는 최초 로그인이 아니라서 ID/PW를 입력하라는 명령어가 안뜬다는 점 참고 바란다!)

 

 

"Login Succeeded" 라고 로그인이 잘 되었다는 것을 볼 수 있다. 이제 push를 시켜보자. push 명령어는 다음과 같다.

 

docker push [내가 만든 레포지토리 이름]:[tag 이름]

 

push 명령어를 입력하고 난 다음 아래와 같이 뜬다면 성공적으로 push가 된 것이다.

 

 

이제 Docker Hub 사이트로 다시 돌아가서 내 레포지토리를 확인해보자. 

 

 

화면을 보면 3.0 이라는 TAG 이름의 ubuntu OS의 이미지가 업로드 되어 있는 것을 볼 수 있다.(참고로 1.0, 2.0 TAG의 이미지는 필자가 포스팅하기 전 연습을 위해서 업로드 시킨 것이므로 신경 쓸 필요 없다.)

 

이제 그러면 다시 터미널로 돌아와서 (push 하기 위해)commit 명령어로 만든 이미지를 삭제해보고 push 한 레포지토리 즉, Docker Hub으로부터 우리가 방금 업로드한 이미지를 pull 할 수 있는지 확인해보자.

 

 

위와 같이 성공적으로 우리가 만들어 push한 이미지를 Docker Hub으로부터 성공적으로 pull 할 수 있는 것을 알 수 있다. 이렇게 해서 앞으로는 개인적으로 만든 프로덕트를 Docker Hub의 내 개인 레포지토리에 push 하고 모든 사람들에게 공유할 수 있는 능력을 갖추게 되었다!


끝으로, 인카토스라는 회사에서 감사하게도 제게 협찬을 해주신 제품을 하나 소개하려고 합니다. 그것은 바로 아래 사진의 Docker 컨테이너 각티슈 케이스입니다!

 

인카토스에서 협찬해주신 Docker 컨테이너 각티슈 휴지 케이스

 

개발 공부를 하다 보면 원인불명의 에러 때문에 땀을 흘리거나 눈물(?)을 흘리기도 하는데요! 겨울철엔  감기라도 걸리면 모니터 앞에서 콧물을 흘리기도, 한여름엔 개발을 너무 열심히 한 나머지 땀을 흘리기도 합니다.

 

하지만 이 제품을 곁에 두고 개발을 하게 되면 귀여운 Docker 컨테이너가 제공하는 티슈 한 장을 편하게 뽑아 쓰면서 개발 텐션을 끊지 않고 이어갈 수 있답니다~!  특히, 마치 개발 관련 장비를 하나 늘린 것처럼 마음이 한켠 든든해지는 기분입니다! 해당 제품에 관심이 있으시다면 아래 링크로 들어가시면 됩니다. 다시 한 번 좋은 제품을 협찬해주신 인카토스에 감사인사 드립니다! :)

 

💡 판매처 인카토스 : https://incatos.shop/

반응형