728x90
1.도커 컴포즈란?
일반적인 시스템은 단일 애플리케이션으로 구동이 되지 않습니다. 여러 개의 애플리케이션이 서로 의존성 있게 구성되어 시스템이 이뤄져 있습니다. 그렇다면 흔히 하나의 컨테이너가 하나의 애플리케이션을 담당한다고 하면 여러 개의 컨테이너가 필요로 합니다. 이때 필요한 기술이 도커 컴포즈(Docker Compose)입니다. 도커 컴포즈는 yaml 포맷으로 작성되며 여러 개의 컨테이너의 실행을 한 번에 관리를 할 수 있게 해 줍니다.
2.도커 컴포즈 설치
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/
docker-compose-$(uname -s)
3.도커 컴포즈 실행과 종료
-up명령어: 컨테이너 실행
docker-compose up -d
-down명령어: 종료
docker-compose down
4.도커 컴포즈 문법
version: '2'
services:
db:
image: mysql:5.7
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_PASSWORD: wordpress
-version: docker-compose.yml 파일의 명세 버전
version: '2'
-services: 실행할 컨테이너 정의, docker run --name wordpress과 같다고 생각할 수 있음
services:
db:
...
wordpress:
...
-image: 실행할 이미지 태그부분에 버전기입을안할시 자동으로 lastest버전으로 실행
services:
wordpress:
image: wordpress:sample
-ports: 컨테이너와 연결할 포트 {호스트 포트}:{컨테이너 포트}
services:
db:
...
ports:
- "8000:8000"
-environment: 컨테이너에서 사용할 환경변수 - {환경변수 이름}:{값}
services:
mysql:
...
environment:
- MYSQL_ROOT_PASSWORD=somewordpress: '3'
-volumes: 마운트하려는 디렉터리 - {호스트 디렉터리}:{컨테이너 디렉터리}
services:
django:
...
volumes:
- ./app:/app
-build: 이미지를 자체 빌드 시 사용 - image속성 대신 사용
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile-dev
그외 logs, stop, start와 같은 기본 명령어는 도커 명령어와 동일!!
ref. 인프런 강의. 초보를 위한 도커 안내서를 보고 참고하여 정리하였습니다.
728x90
'기술 > Devops' 카테고리의 다른 글
aws(2)VPC(Virtual Private Cloud) (0) | 2022.04.19 |
---|---|
aws(1)S3(Simple Storage Services) (0) | 2022.04.19 |
도커(4)-이미지 (0) | 2022.01.19 |
도커(2)-도커 설치와 실행 (0) | 2022.01.17 |
도커(1)-도커란? (1) | 2022.01.13 |