이전 시간에는 docker를 사용해서 앱을 컨테이너화하고 실행해보는 실습을 했다. 이번 시간에는 그렇게 컨테이너화 한 것을 이미지로 docker hub에 올리고 다른 컴퓨터에서 실행해보는 실습을 한다.
깃허브에 소스코드 파일을 올리고 관리했던 것처럼 도커 이미지를 원격으로 올리고 관리할 수 있는 hub이 존재한다. 그게 바로 docker hub이다. 거기에 우리의 이미지를 올리고 관리해보자!
docker hub 웹에서 repository를 만들면 데스크탑앱에는 이런 창이 뜬다.
깃허브에 코드를 푸시하듯, 도커허브에 우리가 만든 컨테이너, 즉 이미지를 푸쉬해보자.
도커허브에 푸쉬 하려면 우리가 빌드된 이미지를 구분하기 위해서 태그를 붙여줘야한다. 아래 태그 옵션을 사용한다. 뒤에 아무것도 없으면 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라는 사이트에 접속해서 인스턴스를 사용해보자. 인스턴스를 간단히 말하면 테스트용 가상 컴퓨터이다.
docker run -dp 0.0.0.0:3000:3000 jjrk/docker_tutorial
jjrk이라는 이름의 레포에서 docker_tutorial 도커 이미지를 찾아서 빌드하라는 의미다.
이전에는 로컬의 3000 포트, 그러니까 127.0.0.1:3000에만 접근을 오픈했다면 이번에는 모든 포트에 개방한다.
실행하는 컨테이너의 3000포트를 로컬 3000포트에 매핑시킨다.
새롭게 형성된 이미지로 새롭게 db가 형성되어 데이터가 초기화된 것을 볼 수 있다.
현재 단원을 정리하면 이와 같다.