proj.pe.kr|도커, 쿠버네티스 기본
✔️

Docker Compose

도커 컴포즈란?

도커 컴포즈 설치

Install the Compose standalone
On this page you can find instructions on how to install the Compose standalone on Linux or Windows Server, from the command line. Compose standalone Note that Compose standalone uses the -compose syntax instead of the current standard syntax compose. For example type docker-compose up when using Compose standalone, instead of docker compose up.
https://docs.docker.com/compose/install/other/
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

ls -l /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

#버전확인
docker-compose version

yaml 명령어

도커 컴포즈로 동작시키는 웹서버

mkdir composetest
cd composetest

#app.js 파이썬 파일 작성
import time
import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)


#requirements.txt 생성
flask
redis


#dockerfile생성
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

cat > docker-compose.yml
version: "3.9"
services:
  web:
    build: .
    ports:
      - "8000:5000"
  redis:
    image: "redis:alpine"

docker-compose 명령어 형식 : docker-compose <command>

명령어설명
up컨테이너 생성/시작
ps컨테이너 목록 표시
logs컨테이너 로그 출력
run컨테이너 실행
start컨테이너 시작
stop컨테이너 정지
restart컨테이너 재시작
pause컨테이너 일시 정지
unpause컨테이너 재개
port공개 포트 번호 표시
config구성 확인
kill실행 중인 컨테이너 강제 정지
rm컨테이너 삭제
down리소스 삭제

사용 예시

# 구성 확인 및 실행
docker-compose config
docker-compose up
docker-compose up -d
docker-compose -f /other-dir/docker-compose.yml

# 상태 확인 및 관리
docker-compose ps
docker-compose scale 서비스이름=개수
docker-compose run 서비스이름 실행명령어
docker-compose logs 서비스이름

# 정지 / 시작 / 삭제
docker-compose stop
docker-compose start
docker-compose down

출처 : 유튜브 따배런 따배도 https://www.youtube.com/@ttabae-learn

# 실행(백그라운드 모드로)
docker-compose up -d

# 도커 컴포즈로 만든 프로세스 조회
docker-compose ps

# 스케일 아웃
docker-compose scale mysql=2

docker-compose ps

# rm명령어처럼, 완전히 종료
docker compose down