도커 컴포즈란?
도커 명령어를 정의 파일(Compose file)에 기술해 실행하는 도구
시스템 구축과 관련된 명령어를 하나의 파일에 기재해, 명령어 한번으로 시스템 전체를 실행→종료→폐기까지 가능하게 함
- up 커맨드: docker up과 비슷. 이미지 내려받고 컨테이너 생성 및 실행, 네트워크와 볼륨도 가능
- down 커맨드: 컨테이너와 네트워크를 정지 및 삭제. 볼륨과 이미지는 삭제 x
도커 컴포즈와 Dockerfile의 차이
- 도커 컴포즈: docker run 명령어를 여러 개 모아둔 것으로, 컨테이너, 네트워크, 볼륨 생성 가능
- Docker file: 이미지 생성만 가능
도커 컴포즈와 쿠버네티스의 차이
- 도커 컴포즈: 컨테이너 생성, 삭제만 가능 (관리 불가)
- 쿠버네티스: 여러 개의 컨테이너 관리
도커 컴포즈의 설치와 사용법
윈도우나 macOS에서 사용하는 도커 데스크톱은 도커 컴포즈가 함께 설치되기 때문에 따로 설치할 필요 x
도커 컴포즈의 사용법
호스트 컴퓨터에 폴더 생성, YAML 파일 배치
- 파일명: docker-compose.yml로 모두 동일
- -f 옵션으로 파일명 지정 가능
서비스: 도커 컴포즈에서 컨테이너가 모인 것.
도커 컴포즈 파일을 작성하는 법
들여쓰기: 공백 두개씩
version: "3"
services:
컨테이너_이름1:
image: 네트워크_이름
nerworks:
- 네트워크_이름
ports:
- 포트_설정
...
컨테이너_이름2:
image: 네트워크_이름
...
nerworks:
네트워크_이름1:
...
volumes:
볼륨_이름1:
볼륨_이름2:
주 항목
항목 | 내용 |
services | 컨테이너 정의 |
networks | 네트워크 정의 |
volumes | 볼륨 정의 |
자주 나오는 정의 내용
항목 | docker run 커맨드의 해당 옵션 또는 인자 | 내용 |
image | 이미지 인자 | 사용할 이미지 |
networks | —net | 접속할 네트워크 |
volumes | -v, —mount | 스토리지 마운트 |
ports | -p | 포트 설정 |
environment | -e | 환경변수 설정 |
depends_on | 의존관계 정의 | |
restarts | 컨테이너 종료 시 재시작 여부 |
restart의 설정값
설정값 | 내용 |
no | 재시작 x |
always | 항상 재시작 |
on-failure | 프로세스가 0 외 상태로 종료 시 재시작 |
unless-stopped | 종료 시 재시작 x, 그 외는 재시 |
MySQL과 wordpress 컴포즈 파일 작성
version: "3"
services:
mysql000ex11:
image: mysql:5.7
networks:
- wordpress000net1
volumes:
- mysql000vol11:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: myrootpass
MYSQL_DATABASE: wordpress000db
MYSQL_USER: wordpress000kun
MYSQL_PASSWORD: wkunpass
wordpress000ex12:
depends_on:
- mysql000ex11
image: wordpress
networks:
- wordpress000net1
volumes:
- wordpress000vol12:/var/www/html
ports:
- 8085:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql000ex11
WORDPRESS_DB_NAME: wordpress000db
WORDPRESS_DB_USER: wordpress000kun
WORDPRESS_DB_PASSWORD: wkunpass
networks:
wordpress000net1:
volumes:
mysql000vol11:
wordpress000vol12:
도커 컴포즈 실행
docker-compose 커맨드
docker-compose -f 정의_파일_경로 up 옵션
docker-compose -f 정의_파일_경로 down 옵션
docker-compose -f 정의_파일_경로 stop 옵션
- 컴포즈 파일 실행
docker-compose -f C:\\Users\\whdms\\Desktop\\project\\docker_practice\\docker-compose.yml up -d(백그라운드로 실행)
로컬 호스트에 접속해보니 워드프레스가 잘 뜬다.
2. 컨테이너와 네트워크를 종료 및 삭제
docker-compose -f C:\\Users\\whdms\\Desktop\\project\\docker_practice\\docker-compose.yml down
3. 이미지와 볼륨 삭제
rm으로 삭제한다.
'개발 공부 > 인프라' 카테고리의 다른 글
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch6 - 실전에 활용 가능한 컨테이너 사용법을 익히자 (1) | 2025.01.07 |
---|---|
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch5 - 여러 개의 컨테이너를 연동해 실행해보자 (0) | 2025.01.06 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch4 - 컨테이너를 실행해 보자 (0) | 2025.01.05 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch3 - 도커를 사용해보자 (0) | 2025.01.05 |
[그림과 실습으로 배우는 도커 & 쿠버네티스] Ch2 - 도커의 동작 원리 (0) | 2025.01.05 |