[도커 튜토리얼] 2. 도커헙 사용하기

Jisu·2023년 12월 1일
0

Docker

목록 보기
2/6

배경

이전 시간에는 docker를 사용해서 앱을 컨테이너화하고 실행해보는 실습을 했다. 이번 시간에는 그렇게 컨테이너화 한 것을 이미지로 docker hub에 올리고 다른 컴퓨터에서 실행해보는 실습을 한다.


Docker hub

깃허브에 소스코드 파일을 올리고 관리했던 것처럼 도커 이미지를 원격으로 올리고 관리할 수 있는 hub이 존재한다. 그게 바로 docker hub이다. 거기에 우리의 이미지를 올리고 관리해보자!

docker hub 웹에서 repository를 만들면 데스크탑앱에는 이런 창이 뜬다.


Docker hub push

깃허브에 코드를 푸시하듯, 도커허브에 우리가 만든 컨테이너, 즉 이미지를 푸쉬해보자.

도커허브에 푸쉬 하려면 우리가 빌드된 이미지를 구분하기 위해서 태그를 붙여줘야한다. 아래 태그 옵션을 사용한다. 뒤에 아무것도 없으면 latest 즉, 최신의 빌드 이미지라는것을 표기한다.

맨 앞에는 내 레포 이름을 적어주고 (jjrk) 그 뒤에는 태그명을 적어주면된다.

docker tag getting-started jjrk/docker_tutorial

git push 처럼 docker push로 이미지를 푸쉬할 수 있고 jjrk라는 레포지토리를 찾아서 이미지를 푸쉬해준다.

docker push jjrk/docker_tutorial

짠! Lastest 태그가 붙은 이미지가 jjrk, 즉 내 이름의 hub로 들어와있는것을 볼 수 있다

업로드중..

** mac의 경우 운영체제에 플랫폼에서 충돌이 발생할 수 있는데, 이 경우에는

docker build --platform linux/amd64 -t jjrk/docker_tutorial .

을 통해서 특정 플랫폼에서 수행되도록 설정할 수 있다.


Play With Docker로 테스트

도커헙의 이미지가 잘 올라가있는지 테스트해보자

play with docker라는 사이트에 접속해서 인스턴스를 사용해보자. 인스턴스를 간단히 말하면 테스트용 가상 컴퓨터이다.

Play With Docker

도커헙의 이미지가 잘 올라가있는지 테스트해보자

play with docker라는 사이트에 접속해서 인스턴스를 사용해보자. 인스턴스를 간단히 말하면 테스트용 가상 컴퓨터이다.

docker run -dp 0.0.0.0:3000:3000 jjrk/docker_tutorial

jjrk이라는 이름의 레포에서 docker_tutorial 도커 이미지를 찾아서 빌드하라는 의미다.

이전에는 로컬의 3000 포트, 그러니까 127.0.0.1:3000에만 접근을 오픈했다면 이번에는 모든 포트에 개방한다.

실행하는 컨테이너의 3000포트를 로컬 3000포트에 매핑시킨다.

업로드중..

새롭게 형성된 이미지로 새롭게 db가 형성되어 데이터가 초기화된 것을 볼 수 있다.


요약

현재 단원을 정리하면 이와 같다.

  • 내 앱 내에 dockerfile을 만들고 그 안에 컨테이너 실행에 필요한 os, 파일 시스템 등을 명시한다.
  • docker는 그를 기반으로 빌드 이미지를 만들고 docker는 이 이미지를 사용해서 앱을 실행한다.
  • 빌드된 이미지는 dockerhub에 올려 다른 컴퓨터에서 이 이미지를 pull 받아 빌드할 수 있다.
  • 따라서 여기서는 내 컴터로 이미지를 빌드하여 도커헙에 올리고, 다른 컴퓨터에서 간단한 명령어로 그 이미지를 받아와서 같은 환경에서 처럼 앱을 돌려보는 경험을 했다.
  • 이미지를 실행할 때마다 별도의 파일시스템이 설정되기 때문에 db는 리셋된다.
profile
비즈니스에 관심많은 DevOps Engineer 장지수입니다.

0개의 댓글