docker compose = 여러개의 container를 설정(docker compose yaml) 해준 값에 따라 알아서 실행해 준다.
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
docker run --name db -v db_data:v/lib/mysql --restart=always -e MYSQL_ROOT_PASSWORD=somewordpress ~ 이것을 yml로 작성한 예시이다.
yaml version 이 존재한다.
up = docker yaml 을 -d daemon (detach) 백그라운드로 실행 시켜줘 , 현재 디렉토리에서 컨테이너가 생성이 된다.
ps = webserver 디렉토리에서 생성된 컨테이너 목록들만 보여준다. docker-compose.yml 기준으로
scale = 특정 컨테이너 개수를 늘릴 수 있다.
down = 종료해줘~
config = 문법체크
docker compose가 빌드까지 해준다. 실행도 가능 배포도 가능~
실습
docker compose 는 따로 install 해야한다.
https://docs.docker.com/compose/install/
https://docs.docker.com/compose/gettingstarted/
이것을 그대로 따라한것이다.
잘 동작하는것을 확인
기존에 docker compose 로 돌아가고 있는 것을 변경을 할 수 있다. 우선 docker-compose down 을 실행해야한다. 멈추는 것 뿐만아니라 해당 컨테이너를 지워버린다.
docker ps, docker-compose ps (현재 디렉토리에서 docker-compose로 실행된 컨테이너만 보여준다)
volume mount를 했기에 app.py 를 변경한것이 바로바로 적용되는것을 확인 할 수 있다.
scale out을 해보자
redis container 가 3개로 늘어남 ㅋㅋㅋ
docker-compose run 명령어는 docker exec 명령어랑 많이 유사하다. up으로 다 띄운후 특정 명령어를 해당 컨테이너로 할 때 run 명령어가 쓰인다.
https://docs.docker.com/samples/wordpress/
wordpress 와 mysql을 연동하여 웹페이지를 만들어보는것이다.
1
'Cloud > Docker' 카테고리의 다른 글
이게 돼요? 도커 없이 컨테이너 만들기 / if(kakao)2022 (0) | 2023.01.31 |
---|---|
[따배도] 9. 컨테이너간 통신(네트워크) (0) | 2022.01.21 |
[따배도] 8. Docker Container Storage (0) | 2022.01.20 |
[따배도] 7. 컨테이너 리소스관리 (0) | 2022.01.20 |
[따배도] 5.컨테이너 보관창고 , 6. 컨테이너 사용하기 (0) | 2022.01.10 |