Docker Compose 한방에 정리
docker-compose up 한 번이면 여러 컨테이너를 동시에 띄울 수 있다. 더 이상 복잡한 docker run 명령어를 반복할 필요 없다.

기본 사용법
Docker Compose는 YAML 파일 하나로 여러 컨테이너 설정을 관리한다. 먼저 docker-compose.yml 파일을 만들고, 실행할 컨테이너들을 정의한다.
version: "3.9"
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: postgres:13
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
위 예시는 Nginx 웹 서버와 PostgreSQL 데이터베이스 컨테이너를 정의한다. web 서비스는 Nginx 이미지를 사용하고, 호스트의 80번 포트를 컨테이너의 80번 포트에 연결한다. 현재 디렉토리의 html 폴더를 컨테이너의 /usr/share/nginx/html에 마운트한다. db 서비스는 PostgreSQL 이미지를 사용하고, 환경 변수를 설정한다.
Compose 파일을 만들었으면, 다음 명령어로 컨테이너들을 실행한다.
docker-compose up -d # 백그라운드 실행. -d 옵션 없으면 터미널에 로그가 계속 뜬다.
컨테이너를 중지하려면 다음 명령어를 사용한다.
docker-compose down # 컨테이너, 네트워크, 볼륨 삭제
컨테이너가 실행 중인지 확인하려면 다음 명령어를 사용한다.
docker-compose ps # 실행 중인 컨테이너 목록
안 될 때
docker-compose up이 안 되면 YAML 파일 문법 오류가 흔하다. YAML은 공백에 민감하므로 들여쓰기가 틀리면 에러가 발생한다. docker-compose config 명령어로 문법을 검사한다.
docker-compose config # 문법 오류 확인
이미지 pull이 안 되는 경우, 이미지 이름이 틀렸거나 Docker Hub에 존재하지 않는 이미지일 수 있다. docker pull <이미지 이름>으로 먼저 이미지를 다운로드해본다.
포트 충돌이 발생하면, 다른 프로세스가 해당 포트를 사용 중일 가능성이 높다. netstat -tulnp (Linux) 또는 Get-Process -Id (Get-NetTCPConnection -LocalPort <포트 번호>).OwningProcess (Windows PowerShell) 명령어로 포트를 사용하는 프로세스를 확인한다.
비슷한 글 추천
Docker 컨테이너 CPU/메모리 사용량 보는 법
Docker 컨테이너의 CPU와 메모리 사용량을 실시간으로 확인하는 방법이다.
Python venv 가상환경 사용법
Python venv로 프로젝트별 환경을 분리하고 패키지 의존성을 관리하는 방법이다.
1-1. 파이썬 시작하기: 개발 환경 설정
파이썬 설치 및 기본적인 개발 환경 설정 방법, 가상 환경 설정, 코드 에디터 소개
1-1. Docker 소개: 컨테이너 기술의 이해
Docker가 무엇인지, 왜 필요한지, 가상 머신과의 차이점을 설명합니다. 컨테이너 기술의 기본적인 개념을 소개합니다.
Comments (0)
No comments yet. Be the first to comment!
Please to write a comment.