65일차 - Docker compose
=======
S = 암호화해서 데이터 주고뱓기
APT(Advanced Persistent Threat) = 지능형 지속 공격 위험
cp /etc/name/named.conf /etc/named/named.conf.bak
백업 본 만들어두고 작업하기가 기본
상대방의 공개키 받기, 검증 (Hash(전자서명값)이 날라옴)
도커 컴포즈(Docker Compose)
개요
- 도커 명령어를 정의 파일에 기술해 사용
- 정의 파일을 이용해 명령어 한 번에 시스템 전체를 실행하고, 종료와 폐기까지 한 번에 할 수 있도록 도와주는 도구
- 시스템 구성에 필요한 설정을 YAML(YAML Ain’t a Markup Language) 포맷으로 정의
- yaml 형식
- 정의 파일은 컨테이너나 볼륨을 어떠한 설정으로 만들지에 대한 항목이 기재됨
Dockerfile과의 차이점
- Dockerfile은 이미지를 만들기 위한 파일
- Doker Compose는 컨테이너, 네트워크, 볼륨 생성 및 삭제 용도
→ 만드는 대상이 다름
- 도커 컴포즈는 도커 엔진과 별개로 설치해서 사용해야 함(리눅스일 경우)
도커 컴포즈 실습
설치
# apt update
# apt -y install python3 python3-pip
→ 도커 컴포즈는 파이썬으로 작성된 프로그램이기 때문에 파이썬 런타임 및 관련 패키지 설치가 선행되어야 함
→ # python3 --version : 버전 확인 가능
# apt -y install docker-compose
→ 설치 확인 : # docker-compose -v : 버전 확인 가능
서비스 : 같은 역할을 수행하는 컨테이너들의 묶음을 ‘서비스’라고 함
도커 컴포즈 사용
- 설치 완료 시 즉시 실행할 수 있는 상태가 됨
- 호스트 컴퓨터에 폴더 생성(컴포즈가 사용할 폴더) 후 정의 파일(YAML파일) 작성
- 생성 폴더에는 한 개의 정의 파일만 존재할 수 있으며, 여러 개의 정의 파일을 사용하려면 개수만큼 폴더를 생성해야 함
→ 한 폴더엔 하나만 적용 가능
- 컨테이너 생성에 필요한 이미지파일이나 HTML 파일도 컴포즈가 사용할 폴더에 저장
도커 컴포즈 파일 생성
- docker-compose.yml 파일에 시스템에서 가동하는 여러 컨테이너의 구성을 모아서 정의하며, YAML 형식으로 작성(파일 확장자는 .yml)
- -f옵션을 사용하여 이름을 변경할 수 있으나, 일반적으로 docker-compose.yml 사용
→ 거의 docker-compose.yml 은 고정 그 밑 파일이름이 바뀐다.
- 컴포즈 파일 주 내용
version: 버전 명시
services: 컨테이너 관련 정보 정의
networks: 네트워크 관련 정보 정의
volumes: 볼륨 관련 정보 정의
→ services 의 뒤에 붙는 내용이 가장 중요
기본 형식(들여쓰기, 공백 주의하여 작성)
======================================================================
version: “3” → : 뒤 반드시 한 칸 공백
services:
컨테이너_이름1: → 맨 앞 2칸 공백
image: 이미지 이름 → 맨 앞 4칸 공백
pots: → 맨 앞 4칸 공백
- 포트 설정 → 맨 앞 6칸 공백
networs:
네트워크_이름1: → 맨 앞 2칸 공백
volumes:
볼륨_이름1: → 맨 앞 2칸 공백
하위 메뉴에 맨 앞은 두칸을 공백으로 비워야 한다.
기본 예제(들여쓰기, 공백 주의하여 작성)
- nginx 이미지를 이용하여 컨테이너 5대 구동시키기 위한 파일 생성
# mkdir /compose_test
# cd /compose_test
# vi docker-compose.yml → 하단 내용 입력
======================================================================
version: “3” → : 뒤 반드시 한 칸 공백
services:
nginx-server: → 맨 앞 2칸 공백
image: nginx:latest → 맨 앞 4칸 공백
ports: → 맨 앞 4칸 공백
- “8111-8115:80” → 맨 앞 6칸 공백
======================================================================
도커 컴포즈 실행 및 종료/삭제
- 도커 컴포즈 명령어
- docker-compose 명령을 이용하여 실행
# docker-compose [하위명령] [옵션]
- 주요 하위명령
up : docker-compose.yml 파일에 정의된 컨테이너 생성 & 시작
down : 생성된 리소스 삭제
- 주요 옵션
-d : 백그라운드 실행
--scale : 컨테이너 수 지정
확인(Firefox에서)
http://localhost:8111 → Test 페이지 출력 확인
http://localhost:8112 → Test 페이지 출력 확인
http://localhost:8113 → Test 페이지 출력 확인
http://localhost:8114 → Test 페이지 출력 확인
http://localhost:8115 → Test 페이지 출력 확인
생성/시작된 컨테이너 종료/삭제
# docker-compose down(이미지와 볼륨은 삭제되지 않음)
→ 컨테이너들은 하나씩 down 이나 rm 을 해줘야 하는데 down 하나면 다 된다.
# docker ps
=======