Skip to content

Latest commit

ย 

History

History
117 lines (96 loc) ยท 3.18 KB

File metadata and controls

117 lines (96 loc) ยท 3.18 KB

Docker Compose์˜ ๊ฐœ๋…

  • Docker Compose๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํˆด
  • ์„œ๋น„์Šค ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด, ๋ณต์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋“ฑ์˜ ๊ด€๋ฆฌ ํˆด์ด ์‚ฌ์šฉ๋จ
    • docker compose์— ๋Œ€ํ•œ ํƒ„ํƒ„ํ•œ ์ดํ•ด => ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋„ ์›ํ• ํ•˜๊ฒŒ ์ตํžˆ๊ณ  ํ™œ์šฉ ๊ฐ€๋Šฅ
  • yaml ๋ฌธ๋ฒ•์œผ๋กœ ์ž‘์„ฑ

๋ช…๋ น๋“ค

docker-compose.yml

version: "3"

# ์ปจํ…Œ์ด๋„ˆ๋“ค ์„ค์ •
services:
  db:
 ย   image: mysql:5.7
 ย   restart: always
 ย   volumes:
 ย  ย   - ./mysqldata:/var/lib/mysql
  environment:
 ย   - MYSQL_ROOT_PASSWORD=alpha
 ย   - MYSQL_DATABASE=alphadb
 ย # ์‹œ๊ฐ„์œผ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๊ฒŒ ์Œ๋”ฐ์˜ดํ‘œ ๋ถ™์—ฌ์•ผ
  ports:
 ย   - "3306:3306"
  • restart
    • ์„œ๋ฒ„๋Š” 24์‹œ๊ฐ„ ๋™์ž‘ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์–ธ์ œ๋“  ๋‹ค์šด๋  ์ˆ˜ ์žˆ๋‹ค.
    • ์œ„ ์˜ต์…˜์œผ๋กœ ์›ฌ๋งŒํ•œ ์ผ€์ด์Šค์—์„œ๋Š” ๊ณ„์† ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • volume
    • docker run ์˜ต์…˜ ์ค‘, -v ์˜ต์…˜๊ณผ ๋™์ผํ•œ ์—ญํ• 
    • ์—ฌ๋Ÿฌ volume์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ์ž‘์„ฑ
    • v ์˜ต์…˜๊ณผ ๋‹ฌ๋ฆฌ ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ์ž‘์„ฑ ๊ฐ€๋Šฅ
  • environment
    • Dockerfile์˜ ENV ์˜ต์…˜๊ณผ ๋™์ผํ•œ ์—ญํ• 

docker-compose ์‹คํ–‰ ๋ช…๋ น

  • ๋ณดํ†ต d ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉฐ, d ์˜ต์…˜์€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰์„ ์˜๋ฏธํ•จ
docker-compose up -d
  • ์ด๋ฏธ์ง€ ์žฌ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, build ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผํ•จ
    • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, ์ด๋ฏธ ์ž‘์„ฑ๋œ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ
docker-compose up -build -d
  • Docker Compose ์ค‘์ง€ ๋ช…๋ น => ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€๋จ
docker-compose stop
  • Docker Compose ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ ๋ช…๋ น
docker-compose down

์ถ”๊ฐ€ ๋ฌธ๋ฒ• ์ดํ•ด

version: "3"

# ์ฃผ์„ ๊ฐ€๋Šฅ?
services:
  app:
 ย   build:
 ย  ย   context: ./01_FLASK_DOCKER
 ย  ย   dockerfile: Dockerfile
 ย   links:
 ย  ย   - "db:mysqldb"
 ย   ports:
 ย  ย   - "80:8080"
 ย   container_name: appcontainer
 ย   depends_on:
 ย  ย   - db

  db:
 ย   image: mysql:5.7
 ย   restart: always
 ย   volumes:
 ย  ย   - ./mysqldata:/var/lib/mysql
  environment:
 ย   - MYSQL_ROOT_PASSWORD=alpha
 ย   - MYSQL_DATABASE=alphadb
  ports:
 ย   - "3306:3306"
  container_name: dbcontainer
  • build
    • ์ด๋ฏธ์ง€๋ฅผ Dockerfile ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ์‹œ ์‚ฌ์šฉ
      • context
        • Dockerfile์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ
      • dockerfile
        • ๋„์ปคํŒŒ์ผ ํŒŒ์ผ๋ช…
  • links
    • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ, ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ ‘์†ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
    • ๋‹ค์Œ YAML ์ฝ”๋“œ์—์„œ, db ์ปจํ…Œ์ด๋„ˆ๋ฅผ app ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ
  • .dockerignore
    • .gitignore ๋น„์Šท
  • depends_on
    • ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ Docker Compose๋กœ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ, ๊ฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
    • depends_on์€ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ทธ๋Ÿฌ๋‚˜, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ready ์ƒํƒœ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€๋ฅผ ๋ช…ํ™•ํžˆ ์ œ์–ดํ•˜๋Š” ๊ฑฐ์Šจ ์•„๋‹ˆ๋ฏ€๋กœ, ๊ธฐ๋Œ€ํ•œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜๋Š” ์žˆ์Œ
  • docker-compose exec [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„]
    • ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์— ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.