# 도커 컴포즈 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 주기
sudo chmod +x /usr/local/bin/docker-compose
# 도커 컴포즈 버전 확인
docker-compose --version
# 임의의 폴더에서 도커 컴포즈 파일 작성 예시
# docker-compose.yml
version: '2'
services:
db:
image: mariadb:10.5
volumes:
- ./mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
volumes:
- ./wp:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
# 커맨드 라인에서 해당 폴더로 이동해 명령 입력
# 컨테이너 실행
docker-compose up
# 컨테이너 중지
docker-compose down
# version
docker-compose.yml 파일의 명세 버전
예) version: '3'
# services
실행할 컨테이너 정의
예) services:
django:
. . .
# image
컨테이너에 사용할 이미지
예) image: mariadb:10.5
# ports
컨테이너와 연결할 포트 ( [호스트 포트]:[컨테이너 포트])
예) ports: "8000:8000"
# environment
컨테이너에서 사용할 환경변수들( [환경변수 이름]:[값])
예) MYSQL_ROOT_PASSWORD=somewordpress: "3"
# volumes
마운트하려는 디렉토리들 ([호스트 디렉토리]:[컨테이너 디렉토리])
예) ./wp:/var/www/html
# restart
재시작 정책
예) restart: "no", restart: always
# build
이미지를 자체 빌드 후 사용
예) build:
context: .
dockerfile: ./compose/django/Dockerfile-dev
# up
컨테이너 실행
예) docker-compose up
# down
컨테이너 중지
예) docker-compose down
# start
멈춘 컨테이너 재개
예) docker-compose start
# restart
컨테이너 재시작
예) docker-compose restart
# stop
컨테이너 멈춤
예) docker-compose stop
# logs
컨테이너의 로그
예) docker-compose logs
docker-compose logs -f
# ps
컨테이너 목록
docker-compose ps
# exec
실행 중인 컨테이너 명령어 실행
docker-compose exec [컨테이너 이름] [명령어]
# build
컨테이너 build 부분에 정의된 내용대로 빌드
예) dcoker-compose build