๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
DevOps/Docker

[Docker] ๋„์ปค ์ปดํฌ์ฆˆ ์‚ฌ์šฉํ•˜๊ธฐ

by ํƒœ์˜น 2022. 1. 18.

๐Ÿ‘‡ ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์•„๋ž˜์˜ ๊ฐ•์˜๋ฅผ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://www.inflearn.com/course/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8/dashboard

 

์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ๋„์ปค ์•ˆ๋‚ด์„œ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

๋„์ปค๋ฅผ 1๋„ ๋ชจ๋ฅด๋Š” ์ž…๋ฌธ์ž, ์ดˆ๋ณด์ž๋ถ„๋“ค์„ ์œ„ํ•œ ๋„์ปค ์•ˆ๋‚ด์„œ ์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋‚ด์šฉ์„ ์ œ์™ธํ•˜๊ณ  ๋„์ปค๊ฐ€ ์™œ ์ธ๊ธฐ๊ฐ€ ๋งŽ๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ์ตํž ์ˆ˜ ์žˆ๋„๋ก ์ง‘์ค‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค., ๋ฐ๋ธŒ์˜ต์Šค ์ž…๋ฌธ

www.inflearn.com


 

1. ๋„์ปค ์ปดํฌ์ฆˆ ์„ค์น˜ ํ™•์ธ

๋„์ปค ์‹ค์Šตํ•˜๋ฉด์„œ๋„ ๋Š๊ผˆ์ง€๋งŒ ๋ช…๋ น์–ด ์น˜๋‹ค๊ฐ€ ํ•œ ๊ธ€์ž ์ž˜๋ชป์ณค์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ๋‹คํ–‰์ด์ง€๋งŒ ๊ทธ๋ƒฅ ์ž˜๋ชป์นœ ๊ทธ๋Œ€๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ–ˆ๋‹ค. (๊ทธ๋Ÿผ stop -> rm -> ๋‹ค์‹œ run ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผํ•จ) ๊ทธ๋ž˜์„œ ๋ช…๋ น์–ด๋กœ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์ฒ™ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ณ  ๋ถˆํŽธํ•œ ์ผ์ด๋‹ค.

 

๋„์ปค ์ปดํฌ์ฆˆ๋Š” ์ด๋Ÿฐ ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ์œˆ๋„์šฐ์™€ ๋งฅ์˜ ๊ฒฝ์šฐ ๋„์ปค๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ฐ™์ด ๋„์ปค ์ปดํฌ์ฆˆ๊ฐ€ ์„ค์น˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜๊ฐ€ ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ž‘์—…๋งŒ ์ง„ํ–‰ํ•œ๋‹ค.

docker-compose version ๋ช…๋ น์–ด๋กœ ๋„์ปค ์ปดํฌ์ฆˆ์˜ ๋ฒ„์ „์„ ํ™•์ธํ•œ๋‹ค. ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•จ์ด๋‹ค.

PS C:\Users\sun990520> docker-compose version
docker-compose version 1.29.2, build 5becea4c
docker-py version: 5.0.0
CPython version: 3.9.0
OpenSSL version: OpenSSL 1.1.1g  21 Apr 2020

 

2. ๋„์ปค ์ปดํฌ์ฆˆ

์ด์ „ ์‹ค์Šต์—์„œ mysql์™€ wordpress ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ๋„์ปค ์ปดํฌ์ฆˆ๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์–ด๋ณด์ž. (arm ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•˜์—ฌ mysql -> mariadb๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ง„ํ–‰)

 

์‹ค์Šต์„ ์œ„ํ•ด ์ผ๋‹จ ๋นˆ ํด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๋‚˜๋Š” C:\Users\sun990520\workspace ํด๋”์— wp๋ผ๋Š” ํด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค. ์ด ํด๋” ์•ˆ์— ๋„์ปค ์ปดํฌ์ฆˆ ์„ค์ •์„ ์ž‘์„ฑํ•  ymlํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

docker-compose.yml

version: '2'
services:
  db:
    image: mariadb:10.5
    volumes:
      - ./mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    image: wordpress:latest
    volumes:
      - ./wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

 

 

db: ์—๋Š” mariadb์™€, wordpress: ์—๋Š” ์›Œ๋“œํ”„๋ ˆ์Šค์™€ ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€ ์ •๋ณด์™€ -v์˜ต์…˜, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์„ ๋„ฃ์–ด์ค€๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ ํ‚ค: ๊ฐ’ ํ˜•ํƒœ๋กœ ํ•˜์œ„๊ตฌ์กฐ๋“ค์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ymlํŒŒ์ผ์˜ ํŠน์ง•์ด๋‹ค.

 

  • volumes์€ -v ์˜ต์…˜๊ณผ ๋™์ผํ•˜๋‹ค.
  • restart์˜ต์…˜์€ ๋งŒ์•ฝ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ฃฝ์—ˆ์„ ๋•Œ ๋‹ค์‹œ ๋„์›Œ์ฃผ๋Š” ์„ค์ •์ด๋‹ค.
  • environment๋Š” -e ์˜ต์…˜๊ณผ ๋™์ผํ•˜๋‹ค.
  • ports๋Š” -p ์˜ต์…˜๊ณผ ๋™์ผํ•˜๋‹ค.

 

docker-compose.yml์„ ์ €์žฅํ–ˆ๋‹ค๋ฉด powershell์—์„œ ๋„์ปค ์ปดํฌ์ฆˆ๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž.

(์ผ๋‹จ ์‹คํ–‰ํ•˜๊ธฐ ์ „์—, ํฌํŠธ๊ฐ€ ์ถฉ๋Œ๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ธฐ์กด์— ์žˆ๋˜ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ์‚ญ์ œํ•˜๋„๋ก ํ•œ๋‹ค.)

 

docker-compose up
docker-compose down

up๋ช…๋ น์–ด๋Š” ๋„์ปค ์ปดํฌ์ฆˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , down ๋ช…๋ น์–ด๋Š” ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

docker-compose up ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆ๋ณ„๋กœ ์ƒ‰๊น”์„ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ๋ณ„ํ•˜์—ฌ ์ง„ํ–‰์ƒํ™ฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋ฉด ๋‹ค์‹œ ๋ธŒ๋ผ์šฐ์ €๋กœ ์›Œ๋“œํ”„๋ ˆ์Šค๋ฅผ ์ ‘์†ํ•ด๋ณด์ž.

์ด๋ฒˆ์—๋Š” 8080ํฌํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ 8000ํฌํŠธ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— (ymlํŒŒ์ผ์—์„œ) localhost:8000์œผ๋กœ ์ ‘์†ํ•œ๋‹ค.

 

์ด์ฒ˜๋Ÿผ ๋„์ปค ์ปดํฌ์ฆˆ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด์ „์ฒ˜๋Ÿผ ํ•œ์ค„ํ•œ์ค„ ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ๋ณด๋‹ค ๋” ํŽธ๋ฆฌํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€