๐Ÿ“Œ ๊ณต๋ถ€ ๊ณ„๊ธฐ

์ถ”๊ฐ€์ ์ธ ๋„์ปค ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ์œ ํŠœ๋ธŒ ๋”ฐ๋ฐฐ๋„ ๋„์ปค ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•ด ๋ด…๋‹ˆ๋‹ค. 

 

๋ชฉ์ฐจ

 

๐Ÿ“10-1. ๋นŒ๋“œ์—์„œ ์šด์˜๊นŒ์ง€ : ์ด๋ก 

1๏ธโƒฃ ๋„์ปค ์ปดํฌ์ฆˆ๊ฐ€ ๋ญ์—์š”?

์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด.

ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์ž‘ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆํ™” ์‹œ์ผœ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์‹คํ–‰ํ•ด์ฃผ์—ˆ๋Š”๋ฐ

YAML(์•ผ๋ฏˆ)ํŒŒ์ผ ํ•˜๋‚˜๋กœ ๋„์ปค ์ปดํฌ์ฆˆ์— ์š”์ฒญํ•˜๋ฉด ์ด yaml ํŒŒ์ผ์„ ๋ช…๋ น์–ด๋กœ ํ•ด์„ํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. 

 

๋˜ํ•œ ์ด compose๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค์„  

docker-compose ํˆด๋กœ ํ•œ๊บผ๋ฒˆ์— ์ƒํƒœ๋ฅผ ๋ณด๊ณ , ๊ด€๋ฆฌํ•˜๊ณ , ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

The Compose file

 

docs.docker.com

๐Ÿšฉ ๋„์ปค ์ปดํŒŒ์ผ ๊ตฌ์„ฑ

๋”๋ณด๊ธฐ

์—ฌ๊ธฐ ํฌ์ŠคํŒ…์—๋„ ์ •๋ฆฌํ•ด ๋†“๊ธด ํ–ˆ์—ˆ๋Š”๋ฐ 

 

์›ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€ Docker 2] ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ๋„์ปค๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž!

๐Ÿ“Œ ๊ณต๋ถ€ ๊ณ„๊ธฐ ์›ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์ด๋ฒˆ ๋‹ฌ ์ œ๊ณตํ•˜๋Š” ๊ฐ•์˜๋Š” Docker! Docker ๊ฐ•์˜ ์ด 4๋ฒˆ ์ค‘ 2๋ฒˆ์งธ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Docker ํ™œ์šฉ ๋ชฉ์ฐจ ๐Ÿ“์ด๋ก ํŽธ : Docker Compose 1๏ธโƒฃ Docker Compose ๋ž€? ๋„์ปค ํŒŒ์ผ์€ ํ•˜๋‚˜์˜

littlezero48.tistory.com

* version 

๋„์ปค ์ปดํฌ์ฆˆ์˜ ๋ฒ„์ „์„ ์˜๋ฏธ.
ํ˜„์žฌ(230409 ๊ธฐ์ค€) version 3 ์ด์ƒ์„ ์‚ฌ์šฉ

 

* services

์‹คํ–‰ํ•˜๋ ค๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ์ •์˜ํ•˜๋Š” ์˜์—ญ
์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์ด๋ฆ„, ์ด๋ฏธ์ง€, ํฌํŠธ ๋งคํ•‘, ํ™˜๊ฒฝ๋ณ€์ˆ˜, ๋ณผ๋ฅจ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌ

 

    - image : ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€

    - build : ์ •์˜๋œ ๋„์ปคํŒŒ์ผ์—์„œ ์ด๋ฏธ์ง€ ๋นŒ๋“œํ•˜๊ณ  ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

    - environment :  ์ปจํ…Œ์ด๋„ˆ์— ์ ์šฉํ•  ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • (run ๋ช…๋ น์–ด์˜ --env, -e ์˜ต์…˜๊ณผ ๋™์ผ)

    - command :  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์–ด (run ๋ช…๋ น์–ด์˜ ์„œ๋ธŒ command์— ์ ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผ)

    - depends_on : ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ์˜์กด์„ฑ ์ฃผ์ž…. ์—ฌ๊ธฐ์— ์ ํžŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋จผ์ € ์ƒ์„ฑ๋˜์•ผํ•œ๋‹ค. 

    - ports : ๊ฐœ๋ฐฉํ•  ํฌํŠธ ์ง€์ • (run ๋ช…๋ น์–ด์˜ -p ์™€ ๋™์ผ)

    - expose : ๋งํฌ๋กœ ์—ฐ๊ณ„๋œ ์ปจํ…Œ์ด๋„ˆ์—๊ฒŒ๋งŒ ๊ณต๊ฐœํ•  ํฌํŠธ ์„ค์ •

    - volumes : ์ปจํ…Œ์ด๋„ˆ์— ๋ณผ๋ฅจ ๋งˆ์šดํŠธ

    - restart : ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ์žฌ์‹œ์ž‘ ์ •์ฑ…

          - no : ์žฌ์‹œ์ž‘ ๋˜์ง€ ์•Š์Œ

          - always : ์™ธ๋ถ€์— ์˜ํ–ฅ์— ์˜ํ•ด ์ข…๋ฃŒ ๋˜์—ˆ์„ ๋•Œ ํ•ญ์ƒ ์žฌ์‹œ์ž‘ (์ˆ˜๋™์œผ๋กœ ๋„๊ธฐ ์ „๊นŒ์ง€ ํ•ญ์ƒ ์žฌ์‹œ์ž‘)

          - on-failure : ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์‹œ ์žฌ์‹œ์ž‘

 

๐Ÿ“ข ์ฐธ๊ณ 

  • yaml ํŒŒ์ผ์€ 2์นธ์”ฉ ๋“ค์—ฌ์“ฐ๊ธฐ(indent) ํ•ด์•ผํ•จ

 


 

2๏ธโƒฃ ๋„์ปค ์ปดํฌ์ฆˆ๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

1) ๋„์ปค ์ปดํฌ์ฆˆ๊ฐ€ ์‚ฌ์šฉํ•  ์„œ๋น„์Šค ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

webserver ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ (mkdir = make directory), webserver ๋กœ ์ด๋™ (cd = change directory)  

mkdir webserver
cd webserver

 

2) docker-compose.yml ์ƒ์„ฑ

๋„์ปค์ปดํฌ์ฆˆ  yml(=yaml)ํŒŒ์ผ ์ƒ์„ฑ

cat > docker-compose.yml

๊ทธ ์•ˆ์— ์•„๋ž˜ ์ฒ˜๋Ÿผ ์ž‘์„ฑ (*yaml ํŒŒ์ผ์€ 2์ธ๋ดํŠธ(๋“ค์—ฌ์“ฐ๊ธฐ) ๊ธฐ์ค€!!) 

version: '3'

services:
  web:
    image: httpd:latest
    ports: 
      - "80:80"
    links:
      - mysql:db
    command: apachectl -DFOREGROUND
    
  mysql:
    imge: mysql:latest
    command: mysqld
    environment:
      MYSQL_ROOT_PASSWORD: pass

 

 

3) docker-compose ๋ช…๋ น์–ด

# start : ์‹œ์ž‘, up : ์ƒ์„ฑ ๋ฐ ์‹คํ–‰ , d ์˜ต์…˜ : detach๋ชจ๋“œ ์ฆ‰, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
docker compose up [-d]  

# ์ง€๊ธˆ ์œ„์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ ๋Œ€์ƒ ๋„์ปค์ปดํฌ์ฆˆ ํŒŒ์ผ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ์กฐํšŒ
docker compose ps

# ๊ฐœ์ˆ˜ ์„ค์ •
docker compose scale mysql=2

# stop : ์ค‘์ง€, down : =rm, ์ค‘์ง€ ๋ฐ ์‚ญ์ œ
docker compose down

 

 

๋ช…๋ น์–ด ์„ค๋ช…
up ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ/์‹œ์ž‘
ps ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ํ‘œ์‹œ
logs ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ์ถœ๋ ฅ
run ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
start ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘
stop ์ปจํ…Œ์ด๋„ˆ ์ •์ง€
restart ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘
pause ์ปจํ…Œ์ด๋„ˆ ์ผ์‹œ ์ •์ง€
unpause ์ปจํ…Œ์ด๋„ˆ ์žฌ๊ฐœ
port ๊ณต๊ฐœ ํฌํŠธ ๋ฒˆํ˜ธ ํ‘œ์‹œ
config ๊ตฌ์„ฑ ํ™•์ธ (yaml ํŒŒ์ผ ๋ฌธ๋ฒ• ์ฒดํฌ
kill ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๊ฐ•์ œ ์ •์ง€
rm ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
down ๋ฆฌ์†Œ์Šค ์‚ญ์ œ
-f ๋‹ค๋ฅธ ํด๋”์— ์žˆ๋Š” yamlํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜
scale ์„œ๋น„์Šค์ด๋ฆ„=๊ฐœ์ˆ˜ ํ•ด๋‹น ์„œ๋น„์Šค ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •

 

 

 


๐Ÿ“10-2. ๋นŒ๋“œ์—์„œ ์šด์˜๊นŒ์ง€ : ์‹ค์Šต

 

 

0๏ธโƒฃ ๋„์ปค ์ปดํฌ์ฆˆ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

 

Install the Compose plugin

 

docs.docker.com

sudo apt-get update
sudo apt-get install docker-compose-plugin

 

 


 

์—ฌ๊ธฐ ์‹ค์Šต ๋ถ€๋ถ„์€ ๋„์ปค์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒ์™€ ํ•จ๊ป˜ ์‹ค์Šต

 

Try Docker Compose

 

docs.docker.com

 

 

 

1๏ธโƒฃ ์„œ๋น„์Šค ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ 

์„œ๋น„์Šค ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

mkdir composetest
cd composetest

 

์‹ค์Šต์šฉ ์˜ˆ์‹œ ํŒŒ์ผ app.py

cat > app.py
import time

import redis
from flask import Flask

app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)

def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)

@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)

๋์— ^C๋Š” ์ข…๋ฃŒ๋กœ ๋ˆŒ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ ๋‚ด์šฉ์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Œ

 

์‹ค์Šต์šฉ ํŒŒ์ผ requirements.txt

๋์— ^C๋Š” ์ข…๋ฃŒ๋กœ ๋ˆŒ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ ๋‚ด์šฉ์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Œ

 

 


2๏ธโƒฃ ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ dockerfile ์ƒ์„ฑ

ํŒŒ์ผ ์ƒ์„ฑ

cat > Dockerfile

ํŒŒ์ผ ์ž‘์„ฑ

FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask","run"]
# ๋‹ค์Œ์ค„์—์„œ crtl+cํ•˜๋ฉด ์ €์žฅ ๋ฐ ์ข…๋ฃŒ

ํŒŒ์ผ ์กฐํšŒ

# > ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋“ค์–ด๊ฐ€๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋˜๋ฏ€๋กœ ๋นผ์ฃผ๋ฉด ์กฐํšŒ๊ฐ€๋Šฅ
cat Dockerfile

๋ช…๋ น์–ด ๋ถ„์„

๋ช…๋ น์–ด ์„ค๋ช…
FROM python:3.7-alpine python:3.7-alpine ์ด๋ฏธ์ง€๋ฅผ ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉ
WORKDIR /code ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋Š” ํ˜„์žฌ์œ„์น˜์˜ code๋ผ๋Š” ํด๋”๋ฅผ ์‚ฌ์šฉ
ENV FLASK_APP=app.py ํ™˜๊ฒฝ๋ณ€์ˆ˜ FLASK_APP ์— app.pyํ• ๋‹น
ENV FLASK_RUN_HOST=0.0.0.0 ํ™˜๊ฒฝ๋ณ€์ˆ˜ FLASK_RUN_HOST์— 0.0.0.0 ํ• ๋‹น
RUN apk add --no-cache gcc musl-dev linux-headers  
COPY requirements.txt requirements.txt ํ˜ธ์ŠคํŠธ์˜ requirements.txt ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์ธ code ์— ๋ณต์‚ฌ
RUN pip install -r requirements.txt requirements.txt ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ์ฝ์–ด pip ์ธ์Šคํ†จ์„ ์ง„ํ–‰
EXPOSE 5000 5000ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉ
COPY . . ํ˜„์žฌ . ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ . ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ชจ๋‘ ๋ณต์‚ฌ
CMD ["flask","run"] ๋ณต์‚ฌํ•œ ์ฝ”๋“œ๋ฅผ flask๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด 

 

 


3๏ธโƒฃ docker-compose.yml ์ƒ์„ฑ

docker-compose.yml ์ƒ์„ฑ

cat > docker-compose.yml

 

๋‚ด์šฉ ์ž‘์„ฑ

version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  
  redis:
    image: "redis:alpine"

 

 


4๏ธโƒฃ docker-compose ๋ช…๋ น์–ด 

์ปดํฌ์ฆˆ๋ฅผ ์‹คํ–‰ (** ์ปดํฌ์ฆˆ ํŒŒ์ผ๋ช…์ด docker-compose.yml ์•„๋‹ˆ๋ผ๋ฉด -f ์˜ต์…˜์„ ํ†ตํ•ด ํŒŒ์ผ ์ด๋ฆ„์„ ์ •ํ™•ํ•˜๊ฒŒ ์ ์–ด์•ผํ•จ)

docker compose up

6๋ฒˆ ๋“ค์–ด๊ฐ”๋”๋‹ˆ 6๋ฒˆ ์นด์šดํŒ… ๋จ

 

 


5๏ธโƒฃ docker-compose ํ™•์ธ

# ํ˜„์žฌ ์ปดํฌ์ฆˆํŒŒ์ผ๋กœ ์ธํ•ด ์‹คํ–‰๋œ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ์กฐํšŒ
docker compose ps

 


6๏ธโƒฃ๊ธฐ์กด docker-compose๋ฅผ ์ค‘๊ฐ„์— ์ˆ˜์ •ํ•˜๋ ค๋ฉด

์ผ๋‹จ ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ์ค‘์ง€ํ•˜๊ณ  ์‚ญ์ œ

docker compose down

 

๋น„์ฅฌ์–ผ ์—๋””ํ„ฐ๋กœ compose ํŒŒ์ผ ์ˆ˜์ •

์ปจํ…Œ์ด๋„ˆ์— ์žˆ๋Š” ํŒŒ์ผ์„ ํ˜ธ์ŠคํŠธ๋ž‘ ๋ณผ๋ฅจ๋งˆ์šดํŠธํ•ด์„œ ํ˜ธ์ŠคํŠธ์—์„œ ์ˆ˜์ •ํ•ด๋ณด๊ธฐ ์œ„ํ•œ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ

version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    environment:
      FLASK_ENV: development
  
  redis:
    image: "redis:alpine"

์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ up

 

๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธํ–ˆ์œผ๋‹ˆ ํ˜ธ์ŠคํŠธ์˜ app.py๋ฅผ ๋ฐ”๋กœ ์ˆ˜์ •ํ•ด์„œ ์ ์šฉ๋˜๋Š” ์ง€๋ฅผ ํ™•์ธํ•ด๋ณด์ž

World > Docker๋กœ ๋ณ€๊ฒฝ
์ด์ „
์ดํ›„

 


7๏ธโƒฃ ๊ฐœ์ˆ˜๋ฅผ ์กฐ์ ˆํ•ด๋ณด์ž

 

# ํ˜„์žฌ scale ๋ช…๋ น์–ด๋Š” ๋น„ํ™œ์„ฑํ™” ๋˜์—ˆ๊ณ 
docker compose scale redis=3

# up์˜ ์˜ต์…˜์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค
docker compose up --scale redis=3

redis ์„œ๋น„์Šค๊ฐ€ 3๊ฐœ๋กœ ๋Š˜์–ด๋‚œ๊ฑธ ๋ณผ ์ˆ˜์žˆ๋‹ค

์ด ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ทธ๋•Œ๊ทธ๋•Œ ์‚ฌ์šฉ์ž์˜ ์ˆ˜์— ๋”ฐ๋ผ scale out, scale in์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 

 

๐Ÿ“ข ๋‹ค๋งŒ, ํฌํŠธํฌ์›Œ๋”ฉ๋œ ๊ฒฝ์šฐ๋Š” ์ •ํ•ด์ง„ ํฌํŠธ๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ์ด ๋ถˆ๊ฐ€๋Šฅ, ๋‹ค๋ฅธ ํฌํŠธ ์‚ฌ์šฉํ•ด์•ผํ•จ

 


8๏ธโƒฃ ์ถ”๊ฐ€ ๋ช…๋ น์–ด

 

  • run์„ ์ด์šฉํ•˜๋ฉด ์„œ๋ธŒ ๋ช…๋ น์–ด ์ „๋‹ฌ ๊ฐ€๋Šฅ

์•„๋ž˜๋Š” web ์ปจํ…Œ์ด๋„ˆ์— env ๋ช…๋ น์–ด๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ณด์—ฌ๋‹ฌ๋ผ๋Š” ์˜๋ฏธ

# docker compose run [OPTIONS] SERVICE [COMMAND] [ARGS...]
docker compose run web env

 

  • ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ๋ณด๊ธฐ
docker compose logs web

 


9๏ธโƒฃ ์ข…๋ฃŒ ๋ฐ ์‚ญ์ œ

# ์ข…๋ฃŒ
docker compose stop

# ์ข…๋ฃŒ ๋ฐ ์‚ญ์ œ
docker compose down

# --volumes ์˜ต์…˜๊นŒ์ง€ ๋„ฃ์œผ๋ฉด ์ปดํฌ์ฆˆ๋กœ ์ธํ•ด ์ƒ์„ฑ๋œ ๋ณผ๋ฅจ๊นŒ์ง€๋„ ๋ชจ๋‘ ์‚ญ์ œ
docker compose down --volumes

 


๐Ÿ”Ÿ ๋˜ ๋‹ค๋ฅธ ์˜ˆ์‹œ

์›Œ๋“œํ”„๋ ˆ์Šค๋ž‘ mysql์ด๋ž‘ ์—ฐ๋™ํ•ด๋ณด๋Š” ์˜ˆ์‹œ

 

WordPress samples

 

docs.docker.com

 

1) ์„œ๋น„์Šค ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

2) docker-compose.yml ์ƒ์„ฑ

3) compose ์‹คํ–‰ ํ™•์ธ

 

+ Recent posts