본문으로 바로가기
반응형

Docker Hub


Docker는 만들어진 이미지를 저장하고, 검색하고, 받아올 수 있는 저장소인 repository를 구성할 수 있다.

사용자는 자신이 만든 image를 repository에 올려 관리하거나 다른 사람들과 공유할 수 있다.

기업이나 공공기관에서 docker를 사용하는 경우는 private한 repository를 별도로 구성해서 사용할 것이다.

하지만 Docker는 각종 공식 어플리케이션들의 공식 이미지와 사용자 개인의 이미지까지 올리고 받을 수 있는 공식 Repository인 Docker Hub를 제공한다. 


Docker Hub - https://hub.docker.com/


Docker Hub는 GitHub 등의 소스 형상 관리 툴과 연계되어 코드를 build해서 자동으로 이미지화 하는 기능을 제공한다. 또한 AWS 등의 PaaS서비스와 연계해서 어플리케이션을 Deploy하는 기능까지 제공한다.

Docker Hub가 아닌 별도의 Private Repository를 사용해야만 하는 경우(특히 한국 기업의..) 를 제외하고는 Docker hub를 사용해 이미지를 관리하게 될 것이다.

(private repository를 별도로 구축한다고 하더라도 그 곳에 올라갈 이미지들의 base image들은 Docker Hub를 통해 배포된 각 Application의 공식 이미지일 것이다.)

 

 

이미지 검색(docker search)


MySQL을 사용해 DB 서버를 구축 하는 것을 가정해 보자.


우리는 MySQL에서 제공한 공식 Image를 사용할 것이다.

이 이미지를 찾는 것은 두가지 방법이 있다.

 

1. Docker Hub Web에 접속해  MySQL을 검색한다

2. docker search 명령어를 사용한다.

 

먼저 Docker Hub Web(https://hub.docker.com/)에 접속해 상단에 있는 Search창에 mysql을 검색해 보자.

 


mysql 공식 레파지토리와, 누군가가 올려놓은 public repository들이 보일 것이다.

Details를 눌러보면 mysql 이미지의 상세한 설명들과 Tag 버전에 따른 정보들을 볼 수 있을 것이다.

Full Description에 나와 있는 설명대로 따라만 하면 쉽게 이미지를 설치하고 환경 구성까지 마칠 수 있다.

 

또 다른 방법으로는 cli 환경에서 docker 명령어를 사용하는 것이다.

 

docker search [옵션] <검색어>

 

※ 옵션

--automated=false : Automated Build만 표시

--no-trunc=false : 모든 결과를 다 표시

-s[--stars=n] : star 수가 n개 이상인 결과만 표시 

 

터미널에 docker search mysql 명령어를 실행해 보자.

 

 

mysql의 공식이미지를 포함해 여러 public 이미지들이 Stars 순서대로 나열된다.

star는 docker hub를 사용하는 누군가가 해당 레파지토리를 즐겨찾기 한 것이다. 즉, 인기순으로 정렬된다.


docker pull(이미지 다운로드)

 

내려받을 이미지를 찾았다면 docker pull 명령어를 통해 이미지를 서버의 로컬 환경으로 내려받자.

 

docker pull [옵션] <이미지명>[:태그명]

 

예를 들어 mysql의 5.6버전을 받기 위해서는 docker pull mysql:5.6 을 터미널에 명령하면 된다.

태그를 생략하면 가장 최신 버전(latest)를 자동으로 내려받는다.

 

만약 해당 이미지 레파지토리의 모든 버전 태그를 다 받고 싶다면 -a 옵션을 주면 된다.

즉, docker pull -a mysql 을 입력하면 모든 태그 이미지를 다 내려받는다.

 

mysql 5.7 버전의 이미지를 받기 위해 docker pull mysql:5.7 을 터미널에 입력하자.

 

 

 

사실 docker pull 명령어를 수행할 때, 이미지명 앞에는 docker hub에서 내려받겠다는 것이 default로 적용되어 있다. 만약 Docker hub가 아닌 별도의 레파지토리에서 받고 싶다면 이미지명 앞에 URL을 지정하면 된다.

즉, test.registry.net 이라는 private registry를 만들어서 이미지를 관리하고, 이곳에 저장되어 있는 mysql 이미지를 받으려면 "docker pull test.registry.net/mysql:5.7" 과 같은 식으로 명령하면 된다.

 

 

docker images(이미지 목록 보기)

 

이미지를 내려받았으면 이제 docker images 명령어를 통해 다운받은 이미지의 목록을 확인할 수 있다.

 

docker images [옵션] [repository명]

 

※ 옵션

-a, --all  : 모든 이미지 표시

--digests : digest 표시

--no-trunc : 모든 결과 표시

-q, --quiet : 이미지 ID만 표시

 

docker images 를 터미널에 입력하면 방금 다운받은 mysql 이미지가 보일 것이다.

 

 

 

 

반응형

 Other Contents