[Docker] 도커 실습 2 - 도커 허브, 도커 컴포즈
10 Oct 2023 - juno
2023-09-27 클라우드 프로그래밍 5주차 강의
도커 실습 2
1. 도커 허브
도커 허브란
-
도커 제작사에서 운영하는 공식 도커 레지스트리
이미지를 내려받는 곳, docker run 해서 내려받는 이미지들이 기본으로는 여기서 받는 거임
도커 레지스트리
- 도커 이미지를 저장하고 관리하는 중앙 저장소로서 동작하는 서버
- 도커 이미지를 업로드, 다운로드, 검색, 삭제 등의 작업을 수행
- 도커 이미지를 공유하고 배포하기 위해 사용
리포지토리
- 도커 이미지의 집합을 나타내는 공간
- 이미지의 다양한 버전을 관리하고 구분
태그
- 도커 이미지의 버전을 식별하기 위한 라벨
- 이미지의 특정 버전을 구분하고 관리하는 데 사용
-
레지스트리_주소(도커 허브는 ID)/리포지토리_이름:버전
* 가장 마지막(최신) 버전: latest * 버전 이름짓기 ex) kky/httpd:01 * 이전에 docker run httpd 를 했을 때 이 태그의 앞뒤가 생략되었던 것임 공식적인 애들은 레지스트리 주소가 생략될수 있고, 버전을 안붙이면 가장 최신버전을 불러옴
이미지에 태그를 부여해 복제하는 명령어(tag)
- docker tag [기존_이미지_이름] [레지스트리_주소]/[리포지토리_이름]:[버전]
-
명령어 실행 후 기존 이미지와 태그가 부여된 이미지가 둘 다 존재
* 기존이미지_이름 ex) httpd * 레지스트리_주소: 거의 계정주소 * 리포지토리_이름: 내가 계정안에서 생성한 리포지토리(저장소)
이미지를 업로드하는 명령어(push)
- docker push [레지스트리_주소]/[리포지토리_이름]:[버전]
- 리포지토리는 처음 업로드할 때는 존재하지 않고, push 커맨드를 실행하며 만들어짐
실
습
2. 도커 컴포즈
도커 컴포즈란
- 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구
도커 컴포즈의 구조
- 시스템 구축에 필요한 설정을 YAML(YAML Ain’t a Markup Language) 포맷으로 기재한 정의 파일을 이용해 전체 시스템을 일괄 실행(run) 또는 일괄 종료 및 삭제(down)할 수 있는 도구
- 정의 파일에는 컨테이너나 볼륨을 ‘어떠한 설정으로 만들지'에 대한 항목이 기재
- up 커맨드
- docker run 커맨드와 비슷
- 정의 파일에 기재된 내용대로 이미지를 내려받고 컨테이너를 생성 및 실행
- 정의 파일에는 네트워크나 볼륨에 대한 정의도 기재할 수 있어 주변 환경을 한꺼번에 생성 가능
- down 커맨드
- 컨테이너와 네트워크를 정지 및 삭제
- 볼륨과 이미지는 삭제하지 않음
도커 컴포즈 사용법
- 호스트 컴퓨터에 폴더를 만들고 이 폴더에 정의 파일(YAML 파일)을 배치
컴포즈 파일 작성
첫 줄에 도커 컴포즈 버전을 기재
주 항목 services, networks, volumes 아래에 설정 내용을 기재
항목 간의 상하 관계는 공백을 사용한 들여쓰기로 나타냄
들여쓰기는 같은 수의 배수만큼의 공백을 사용
이름은 주 항목 아래에 들여쓰기한 다음 기재
컨테이너 설정 내용은 이름 아래에 들여쓰기한 다음 기재
여러 항목을 기재하려면 줄 앞에 ’-’를 붙임
이름 뒤에 콜론( : )을 붙임
콜론 뒤에는 반드시 공백이 와야함(바로 줄바꿈하는 경우는 예외)
# 뒤의 내용은 주석으로 간주
문자열은 작은 따옴표( ‘ ) 또는 큰 따옴표( “ ) 로 감싸 작성
실
습