목차
도커 컴포즈(Docker Compose) 란 ?
YAML 이란 ?
주요 명령어
docker compose up -d # YAML 파일에 정의된 서비스 생성 및 시작
docker compose ps # 현재 실행중인 서비스 상태 표시
docker compose build # 현재 실행중인 서비스의 이미지만 빌드
docker compose logs # 실행 중인 서비스의 로그 표시
docker compose down # YAML 파일에 정의된 서비스 종료 및 제거
Hitchecker 앱 실습
app.py
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379) # 레디스 접속 정보 설정
@app.route('/')
def hello():
redis.incr('hits') # 경로 접근 시 redis의 캐시 값을 증가시키고 증가된 값을 출력
return 'Hit Checked! 이 페이지는 %s 번 방문되었습니다.' % redis.get('hits').decode('utf-8')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
Dockerfile
FROM python:3.7-alpine
WORKDIR /app
COPY . /app
RUN pip install flask redis # 애플리케이션 실행에 필요한 라이브러리 설치
CMD ["python", "app.py"]
docker-compose.yaml
version: '3'
services:
hitchecker:
build: ./ # 이미지 빌드 시 사용할 Dockerfile 경로
image: hitchecker:1.0.0 # 이미지 빌드 및 컨테이너 실행 시 사용할 이미지 태그
ports:
- "5000:5000"
restart: always # 컨테이너 종료 시 자동으로 재시작
redis:
image: "redis:alpine" # 컨테이너 실행 시 사용할 이미지 태그
실습 명령어 순서
# 1. easydocker/compose/hitchecker 에서 실행, 이미지 빌드
$ docker compose build
# 2. 빌드된 이미지 확인
$ docker image ls
# 3. 컨테이너 실행
$ docker compose up -d
# 4. 컨테이너 상태 확인, localhost:5000 접속
$ docker compose ps
# 5. 컨테이너 로그 확인
$ docker compose logs
# 6. 컨테이너 삭제 후 재실행 및 localhost:5000 접속, 값이 그대로 남아있는지 확인
$ docker rm -f {컨테이너명}
# 7. 서비스의 삭제
$ docker compose down
Leafy 앱 실습
Volume 추가
리소스 사용 제한, 재시작 정책 지정 추가
'SOPT 34기 서버파트 > Docker 스터디' 카테고리의 다른 글
DevOps & CI/CD & GitHub Actions (0) | 2024.06.25 |
---|---|
[Docker] 도커 실무에 적용하기 (0) | 2024.05.08 |
[Docker] 스토리지와 마운트 볼륨 (0) | 2024.05.07 |
[Docker] 가상 네트워크 (0) | 2024.05.07 |
[Docker] 컨테이너 애플리케이션 구성 (0) | 2024.05.04 |