Programming/Docker

[Docker] Compose ๋ž€? / ์‚ฌ์šฉ๋ฒ•

MOONCO 2022. 7. 12. 18:02

๐Ÿ‘‰ Compose ๋ž€?

Docker ์ปจํ…Œ์ด๋„ˆ์˜ ์„ค๊ณ„๋„ ( YAML ํŒŒ์ผ )

( ๋ช…๋ น์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋ฌด์ œํ•œ ์ƒ์„ฑ ใ…‹ใ…‹ )

 

๐Ÿ‘‰ ์ž‘์„ฑํ•˜๊ธฐ

 

๋งŒ๋“ค๊ณ  ์‹ถ์€ ์ปจํ…Œ์ด๋„ˆ ( 2๊ฐœ )

 docker run -dp 3000:3000 \
  -w /app -v "$(pwd):/app" \
  --network todo-app \
  -e MYSQL_HOST=mysql \
  -e MYSQL_USER=root \
  -e MYSQL_PASSWORD=secret \
  -e MYSQL_DB=todos \
  node:12-alpine \
  sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev"

 

docker run -d \
  --network todo-app --network-alias mysql \
  -v todo-mysql-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=secret \
  -e MYSQL_DATABASE=todos \
  mysql:5.7

 

Compose ์ž‘์„ฑ

# ํ”„๋กœ์ ํŠธํด๋”/docker-compose.yml

# ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ์ง€์ •
version: "3.9"  # optional since v1.27.0

# ์‹คํ–‰ํ•˜๋ ค๋Š” ์„œ๋น„์Šค ์ง€์ •
services:
  # app์œผ๋กœ ๋ณ„์นญ ์ง€์ • ( services์˜ ๋ฐ”๋กœ ์•„๋ž˜ ์š”์†Œ )
  app:
    # ์ด๋ฏธ์ง€ ํŒŒ์ผ ์ง€์ •
    image: node:12-alpine
    # ์‚ฌ์šฉํ•  ๋ช…๋ น์–ด ์ง€์ •
    command: sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev"
    # ํฌํŠธ ์ง€์ •
    ports:
      - 3000:3000
    # ๋ช…๋ น์–ด ์‚ฌ์šฉ ๊ฒฝ๋กœ ์ง€์ •
    working_dir: /app
    # ๋ณผ๋ฅจ ์ง€์ • / ๋ฐ”์ธ๋”ฉ
    volumes:
      - ./:/app
    # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ง€์ •
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos
  # mysql์œผ๋กœ ๋ณ„์นญ ์ง€์ • 
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos
    
    # ์„œ๋น„์Šค ๋ณผ๋ฅจ ์ง€์ •
    volumes:
      - todo-mysql-data:/var/lib/mysql
    
# ์ƒˆ๋กœ์šด ๋ณผ๋ฅจ ์ƒ์„ฑ
volumes:
  todo-mysql-data:

 

๐Ÿ‘‰ ์‹คํ–‰ํ•˜๊ธฐ

 

Compose ํŒŒ์ผ๋กœ, ์ปจํ…Œ์ด๋„ˆ ๋งŒ๋“ค๊ธฐ

docker-compose up -d

# -d : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ ( docker run ์˜ต์…˜๊ณผ ๋™์ผ )

 

Compose ์‹คํ–‰๋กœ๊ทธ ํ™•์ธํ•˜๊ธฐ

docker-compose logs <์˜ต์…˜> <๋ณ„์นญ>

# -f : ์‹ค์‹œ๊ฐ„ ์ถœ๋ ฅ

 

๐Ÿ‘‰ ์ข…๋ฃŒํ•˜๊ธฐ

docker-compose down --volumes

# --volumes : ๋ณผ๋ฅจ๋„ ๊ฐ™์ด ์ œ๊ฑฐ

 

๋ฐ˜์‘ํ˜•