9.1 Docker Hub와 다시 만나기
Docker Hub와 다시 한번 가까이 만나보자. 일단, Docker Hub는 주요 공개 Docker 레지스트리로, 사용자가 컨테이너 이미지를 저장하고, 공유하며, 검색할 수 있는 곳이야. 이 플랫폼은 공식 조직과 커뮤니티에서 만든 수백만 개의 컨테이너에 접근할 수 있는 기능을 제공해. 이번 강의에서는 Docker Hub에서 이미 만들어진 이미지를 효과적으로 검색하고 다운로드하는 방법에 대해 알아볼 거야.
Docker Hub 서비스의 주요 작업들
Docker Hub는 이미지를 중앙 집중식 스토리지에 업로드하고 거기서 가져올 수 있도록 하는 클라우드 서비스야. 이 서비스는 개발자가 자신들의 이미지를 공유하거나 다른 사용자의 솔루션을 사용할 수 있는 장소로 기능해. Docker Hub의 주요 기능은 다음을 포함해:
- 공개 및 비공개 저장소: 모든 사용자가 접근할 수 있는 공개 접근 저장소와 특정 사용자들만 접근 가능한 제한된 접근 저장소를 사용할 수 있어.
- 자동 빌드 (automated builds): GitHub 같은 버전 관리 시스템과의 통합을 통해 코드가 변경될 때마다 이미지를 자동으로 빌드할 수 있어.
- 웹훅 (webhooks): 이미지가 업데이트될 때 실행되는 자동 작업의 구성을 설정할 수 있어.
9.2 준비된 이미지 검색
1. Docker Hub 웹 인터페이스 사용하기
- Docker Hub로 이동: 브라우저에서 Docker Hub 열기.
- 이미지 검색: 검색창에 이미지 이름이나 프로젝트 관련 키워드 입력. 예를 들어 Nginx 이미지를 찾으려면 "nginx"를 입력하고 Enter 누르기.
- 결과 보기: 검색 결과에 적합한 이미지가 표시됨. 공식 이미지는 "Official"로 표시되며 Docker나 관련 조직에서 지원됨. 다른 사용자 이미지는 사용자나 조직 이름이 표시됨.
- 이미지 선택: 관심 있는 이미지를 클릭하고 설명, 사용 가능한 태그, 사용법 가이드 및 기타 유용한 정보 확인.
2. 커맨드 라인을 통해 이미지 검색하기
Docker는 또한 docker search
명령을 사용하여 커맨드 라인에서 직접 이미지를 검색할 수 있음.
명령 예제:
docker search nginx
이 명령은 이름이나 설명에 nginx
가 포함된 이미지 목록을 출력함. 출력에는 이미지 이름, 설명, 별점(평가), 공식 상태 표시 및 자동 빌드 정보가 포함됨.
출력 예제:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 13764 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for... 2135 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM... 819 [OK]
9.3 이미지 다운로드
필요한 이미지를 찾은 후에는 docker pull
명령어를 사용해서 로컬 머신으로 이미지를 다운로드할 수 있어.
1. 특정 이미지 다운로드
특정 이미지를 다운로드하려면 아래의 문법을 사용해:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
여기서:
- NAME: 이미지 이름.
- TAG: (옵션) 이미지 태그. 다른 태그를 지정하지 않으면 기본적으로
latest
태그가 사용돼. - @DIGEST: (옵션) 이미지의 SHA256 식별자.
이미지 다운로드 예제:
이 예제는 nginx
의 최신(latest
) 이미지를 다운로드할 거야.
docker pull nginx:latest
2. 특정 태그의 이미지 다운로드
특정 이미지 태그가 필요하다면, 콜론 이후에 태그를 지정해. 이 예제는 Ubuntu 버전 20.04 이미지를 다운로드할 거야.
docker pull ubuntu:20.04
3. 다운로드한 이미지 확인
이미지를 다운로드한 이후, docker images
명령어를 사용해서 로컬 머신에서 어떤 이미지를 가지고 있는지 확인할 수 있어.
명령어 예제:
이 명령어의 출력은 모든 다운로드된 이미지들의 목록을 보여줄 거야. 여기에는 리포지토리, 태그, 이미지 식별자, 생성 날짜, 크기가 포함돼.
docker images
9.4 준비된 이미지 사용 예시
1. Nginx 웹 서버 실행
Nginx 이미지를 다운로드한 후에는 이를 기반으로 컨테이너를 빠르게 실행할 수 있어.
예시:
이 예시는 Nginx
컨테이너를 백그라운드에서 실행하고, 컨테이너의 80번 포트를 호스트 머신의 8080번 포트로 리다이렉션해. 이제 브라우저를 열고 http://localhost:8080을 입력해서 Nginx
웹 서버에 접근할 수 있어.
docker run -d -p 8080:80 nginx
2. MySQL 데이터베이스 실행
Docker Hub는 MySQL 같은 데이터베이스의 준비된 이미지를 제공하니까, 개발 및 테스트 목적으로 데이터베이스를 쉽게 배포할 수 있어.
예시:
이 예시는 MySQL 컨테이너를 실행하고 root 사용자의 비밀번호를 설정하며, 컨테이너의 3306번 포트를 호스트 머신의 3306번 포트로 리다이렉션해.
docker run -d -p 3306:3306 --name my_mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:latest
3. 캐싱을 위한 Redis 이미지 사용
Redis는 인기 있는 캐싱 시스템으로, Docker Hub에서 제공하는 준비된 Redis 이미지를 사용해 빠르게 배포할 수 있어.
예시:
이 예시는 Redis 컨테이너를 실행하고, 컨테이너의 6379번 포트를 호스트 머신의 6379번 포트로 리다이렉션해.
docker run -d -p 6379:6379 --name my_redis redis:latest
GO TO FULL VERSION