Cloud/Docker

[따배도] 10. 빌드에서 운영까지(using Docker Compose)

Tony Lim 2022. 1. 22. 14:20

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/

 

Install Docker Compose

 

docs.docker.com

 

https://docs.docker.com/compose/gettingstarted/

 

Get started with Docker Compose

 

docs.docker.com

이것을 그대로 따라한것이다.

잘 동작하는것을 확인

기존에 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/

 

Quickstart: Compose and WordPress

 

docs.docker.com

wordpress 와 mysql을 연동하여 웹페이지를 만들어보는것이다.

 

1