DevOps/Docker
[Docker] 도커 허브에서 이미지를 가져와 실행하기
ttasjwi
2022. 12. 4. 16:46
도커에서는 공식적으로 공개 이미지 저장소 '도커 허브'를 제공한다.
이번 글에서는 도커 허브에 올라온 공개 이미지를 활용하여 우리 로컬 환경에서 애플리케이션을 실행해볼 것이다.
1. 도커 허브에서 원하는 애플리케이션을 찾는 방법
- 도커 허브 검색 페이지에서 찾기
- docker search 명령어로 찾기
2. 도커 허브 검색 페이지에서 찾기
https://hub.docker.com/search 에 접속하면 다양한 공개 이미지들이 제공되고 있는데, 이 사이트에서 원하는 이미지를 검색하여 사용하면 된다. 예를 들어 ubuntu 이미지를 클릭하여 들어가보면 다양한 버전의 우분투 이미지들이 제공되는 것을 확인할 수 있고 docker pull 명령어를 통해 이미지를 우리의 로컬 환경으로 가져올 수 있도록 안내해주고 있다.
3. docker search 명령어로 찾기
docker search mongo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mongo MongoDB document databases provide high avai… 9298 [OK]
mongo-express Web-based MongoDB admin interface, written w… 1254 [OK]
bitnami/mongodb Bitnami MongoDB Docker Image 201 [OK]
...
docker search 명령어를 사용하면 docker-hub에서 해당 이름을 가진 이미지를 검색한다.
- 가급적 아무런 접두사가 없는 버전을 선택하는 것이 좋다.
- 일반적으로 접두사가 없는 버전이 도커 허브에서 공식 이미지로, 안정적으로 관리된다.
- 접두사가 붙은 버전은 오픈 소스 프로젝트로 관리되는 비공식 이미지인 경우가 대부분이다.
- 참고로, 도커 허브에서는 수백만 개의 다양한 애플리케이션이 이미지로 올라와 있다.
4. 도커 허브에서 이미지를 가져와 바로 실행하기
docker run mongo
Unable to find image 'mongo:latest' locally
latest: Pulling from library/mongo
...
eaead16dc43b: Pull complete
8a00eb9f68a0: Pull complete
f683956749c5: Pull complete
b33b2f05ea20: Pull complete
...
0a5a5d2ec822: Pull complete
37200fef7cf6: Pull complete
Digest: sha256:8bed0be3e86595283d67836e8d4f3f08916184ea6f2aac7440bda496083ab0c8
Status: Downloaded newer image for mongo:latest
{"t":{"$date":"2022-11-30T08:14:29.107+00:00"},"s":"I", "c":"NETWORK", "id":4915701, "ctx":"main","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":17},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":17},"outgoing":{"minWireVersion":6,"maxWireVersion":17},"isInternalClient":true}}}
{"t":{"$date":"2022-11-30T08:14:29.108+00:00"},"s":"I", "c":"CONTROL", "id":23285, "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
...
- 단순히 docker run 명령어를 입력했을 뿐인데 도커 허브에서 몽고 DB 이미지를 가져와 컨테이너를 띄우는데 성공했다.
- 로컬에 mongo 이미지가 없으므로 도커 허브에서 mongo 이미지를 pull하고 실행하는 것을 확인할 수 있다. (아래에서 사용할 pull 명령을 통해 명시적으로 단계를 나눠주는게 더 좋다.)
- 자세히 보면 이 이미지에는 필요한 모든 요소들이 포함되어 있는 것을 확인할 수 있다. 덕분에 사용자는 이미지에 포함되어 있는 의존성을 전혀 고려할 필요가 없다.
5. 도커 허브 레지스트리 관련 명령어
docker pull debian
docker pull debian:latest
- docker pull : 도커 허브 레지스트리에서 로컬로 도커 이미지 내려받기
- docker push : 로컬에 있는 도커 이미지를 도커 허브 레지스트리에 업로드한다.
- docker login : 업로드 하기 전, 도커 허브 계정으로 로그인을 수행(도커 데스크탑에서 로그인했다면 이 절차가 필요없다.)
- docker logout : 도커 허브에서 로그아웃 하기
이들 명령어의 상세한 사용법을 하나 하나 설명하면 글이 매우 길어질 우려가 있으므로 각 명령어 별로 도커의 공식 레퍼런스 링크를 걸도록 하겠다.