๐Ÿณ Docker Compose

JeongHoHyunยท2025๋…„ 4์›” 23์ผ
0

Docker

๋ชฉ๋ก ๋ณด๊ธฐ
5/9

๐Ÿณ Docker Compose

์—ฌ๋Ÿฌ๊ฐœ์˜ Docker ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์ •์˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•ด ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํˆด์ด๋‹ค.

Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์šฉ์ด
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
    • ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค.
  • ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์‹œํ‚ค๋˜ ๊ฒƒ์„ ๊ฐ„์†Œํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
    • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ๋งˆ๋‹ค ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    • docker compose up๋ช…๋ น์–ด๋งŒ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋œ๋‹ค.

Docker Compose๋กœ Nginx ์‹คํ–‰

์ด์ „ ๋ฐฉ๋ฒ• (Docker CLI)

docker run --name webserver -d -p 80:80 nginx

Docker Compose ์ด์šฉ

1. docker-compose.yml ํŒŒ์ผ ์ž‘์„ฑ

services:
	my-web-server:
		container_name: webserver
		image: nginx
		ports: 
			- 80:80
  • services: my-web-server : Docker Compose์—์„œ ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„œ๋น„์Šค(service)๋ผ๊ณ  ํ•œ๋‹ค.
  • container_name: webserver : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šธ ๋•Œ ๋ถ™์ด๋Š” ๋ณ„์นญ์ด๋‹ค. CLI์—์„œ --name webserver์—ญํ• ๊ณผ ๋™์ผํ•˜๋‹ค.
  • image: nginx : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ์–ด๋–ค ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ง€ ์ •์˜ํ•˜๋Š” ๋ช…๋ น์–ด
  • ports : ํฌํŠธ ๋งคํ•‘์„ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜ -p 80:80๊ณผ ๋™์ผํ•œ ์—ญํ• ์„ํ•œ๋‹ค.

2. compose ํŒŒ์ผ ์‹คํ–‰

docker compose up -d

3. compose ์‹คํ–‰ ํ˜„ํ™ฉ ๋ณด๊ธฐ

docker compose ps
docker ps

4. compose๋กœ ์‹คํ–‰๋œ ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ

docker compose down

Docker Compose ๊ด€๋ จ ๋ช…๋ น์–ด

compose.yml์—์„œ ์ •์˜ํ•œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

docker compose up # ํฌ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
docker compose up -d # ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰

Docker Compose๋กœ ์‹คํ–‰์‹œํ‚จ ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ

# compose.yml์— ์ •์˜๋œ ์ปจํ…Œ์ด๋„ˆ ์ค‘ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋งŒ ๋ณด์—ฌ์ค€๋‹ค.
docker compose ps

# compose.yml์— ์ •์˜๋œ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
docker compose ps -a

Docker Compose ๋กœ๊ทธ ํ™•์ธํ•˜๊ธฐ

# compose.yml์— ์ •์˜๋œ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ๋ชจ์•„์„œ ์ถœ๋ ฅ
docker compose logs

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์ „ ์ด๋ฏธ์ง€ ์žฌ๋นŒ๋“œ

docker compose up --build #ํฌ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
docker compose up --build -d #๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰
  • docker compose up : ์ด๋ฏธ์ง€๊ฐ€ ์—†์„ ๋•Œ๋งŒ ๋นŒ๋“œํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜์ง€ ์•Š๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.
  • docker compose up --build : ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๊ฑด ์—†๊ฑด ๋ฌด์กฐ๊ฑด ๋นŒ๋“œ๋ฅผ ๋‹ค์‹œํ•ด์„œ ์ปจํƒœ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.

์ด๋ฏธ์ง€ ๋‹ค์šด/์—…๋ฐ์ดํŠธ

docker compose pull
  • compose.yml์—์„œ ์ •์˜๋œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด ๋ฐ›๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
    • ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค.
    • ์ด๋ฏธ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š”๋ฐ Dockerhub์˜ ์ด๋ฏธ์ง€์™€ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์ผ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.
profile
Java Back-End 2022.11.01 ๐Ÿ’ป~ing

0๊ฐœ์˜ ๋Œ“๊ธ€