๐ ใ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ Docker & ์ฟ ๋ฒ๋คํฐ์คใ
๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์
๋๋ค.
Docker-compose
- ์์คํ
๊ตฌ์ถ๊ณผ ๊ด๋ จ๋ ๋ช
๋ น์ด๋ฅผ ํ๋์ ํ
์คํธ ํ์ผ์ ๊ธฐ์ฌํ์ฌ ๋ช
๋ น์ด ํ๋ฒ์ ์์คํ
์ ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ค.
yaml
ย ํฌ๋งท์ผ๋ก ๊ธฐ์ฌํ ์ ์ ํ์ผ์ ์ด์ฉํด ์ ์ฒด ์์คํ
์ ์ผ๊ด์ ์ผ๋ก ์คํ, ์ข
๋ฃ, ์ญ์ ํ๋ค.up
ย ๋ช
๋ น์ด๋ฅผ ํตํด ์ ์ ํ์ผ์ ๊ธฐ์ฌ๋ ๋ด์ฉ๋๋ก ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ๊ณ Container
๋ฅผ ์์ฑ ๋ฐ ์คํํ๋ค.down
ย ๋ช
๋ น์ด๋ฅผ ํตํด Container
์ ๋คํธ์ํฌ๋ฅผ ์ ์ง ๋ฐ ์ญ์ ํ๋ค.- ์ด๋ ๋ณผ๋ฅจ๊ณผ ์ด๋ฏธ์ง๋ ์ญ์ ๋์ง ์๋๋ค.
stop
ย ๋ช
๋ น์ด๋ฅผ ํตํด Container
์ ๋คํธ์ํฌ ์ญ์ ์์ด ์ข
๋ฃ๋ง ํ๋ค.Docker-compose
๋ย docker run
ย ๋ช
๋ น์ด๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ชจ์ ๋์ ๊ฒ๊ณผ ๊ฐ๋ค.Dockerfile
์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฒ์ผ๋ก ๋คํธ์ํฌ๋ Volume
์ ๋ง๋ค ์ ์๋ค.docker-compose.yml
ํ์ผ์ ํ ํด๋์ ํ๋๋ง ์์ ์ ์๋ค.
Docker-compose
ํ์ผ์ ์์ฑํ๋ ๋ฒ
1
| docker run --name ์ปจํ
์ด๋๋ช
-dit --net=๋คํธ์ํฌ๋ช
-p 8085:80 -e WORDPRESS_DB_HOST=๋ฐ์ดํฐ๋ฒ ์ด์ค_ํธ์คํธ -e WORDPRESS_DB_NAME=๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
-e WORDPRESS_DB_USER=์ ์ ๋ช
-e WORDPRESS_DB_PASSWORD=ํจ์ค์๋ wordpress
|
- ์๊ธฐย
run
ย ๋ช
๋ น์ ์คํํ๊ธฐ ์ํด์๋ docker-compose.yml
ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ผ ํ๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| version: "3"
service:
์ปจํ
์ด๋๋ช
:
depends_on:
- ๋ฐ์ดํฐ๋ฒ ์ด์ค_์ปจํ
์ด๋
image: wordpress
networks:
- ๋คํธ์ํฌ๋ช
ports:
- 8085:80
restart: always
environment:
WORDPRESS_DB_HOST: ๋ฐ์ดํฐ๋ฒ ์ด์ค_์ปจํ
์ด๋
WORDPRESS_DB_NAME: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
WORDPRESS_DB_USER: ์ ์ ๋ช
WORDPRESS_DB_PASSWORD: ํจ์ค์๋
|
yaml
ย ํ์์์๋ ๊ณต๋ฐฑ์ ๋ฐ๋ผ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง๋ค.depends_on
์ ๋ค๋ฅธ ์๋น์ค์ ๋ํ ์์กด ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.- ์๋ฅผ ๋ค์ด ์ ์ค์ ์์๋ย
mysql01
ย Container
๋ฅผ ๋จผ์ ์์ฑํ ๋ค์ย wordpress
ย ์ปจํ
์ด๋๋ฅผ ๋ง๋ ๋ค. - ๊ทธ๋ฌ๋
mysql01
๊ฐ ์จ์ ํ ํต์ ํ ์ ์๋ ์ํ์์ ๋ณด์ฅํ์ง๋ ์๋๋ค. restart
๋ ์ฌ์์ ์ฌ๋ถ๋ฅผ ์ค์ ํ๋ค.Docker-compose
๋ก ๋ง๋ Container
๋ผ๋ ๋์ปค ์์ง์ ํตํด ๋ช
๋ น์ ๋ด๋ฆด ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋์ค์ Docker Engine
์ ํตํด ๋ช
๋ น์ ๋ด๋ฆฌ๋ฉด Docker-compose
ํ์ผ๊น์ง ๋ฐ์์ด ๋ ๊น?- ๋ฐ์๋์ง ์๋๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก
Docker Engine
์ ํตํด Container
์ด๋ฆ์ ๋ฐ๊พธ์๋ค๋ฉด, ๋์ค์ Docker-compose
๋ฅผ ํตํด ์ ์ง, ์ญ์ ํ๋ ค๊ณ ํด๋ Docker-compose
ํ์ผ์ ๊ธฐ์ฌ๋ ์ด๋ฆ๊ณผ ์ค์ Container
์ด๋ฆ์ด ์ผ์นํ์ง ์์ Container
๋ฅผ ์ ์ง, ์ญ์ ํ์ง ๋ชปํ ์๊ฐ ์๋ค. - ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก
Container
์ด๋ฆ์ ๊ฐ๊ธ์ ์๋์ง ์๋ ๊ฒ์ด ์ข๋ค.
MySQL
,ย WORDPRESS
๊ตฌ์ถ ์ค์ต
version: "3"
services:
mysql01:
image: mysql:5.7
networks:
- net01
volumes:
- vol01:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1234
MYSQL_DATABASE: db01
MYSQL_USER: ์์ด๋
MYSQL_PASSOWRD: ํจ์ค์๋
wordpress01:
depends_on:
- mysql01
image: wordpress
networks:
- net01
volumes:
- vol02:/var/www/html
ports:
- 8085:50
restart: always
environment:
WORDPRESS_DB_HOST: mysql01
WORDPRESS_DB_NAME: db01
WORDPRESS_DB_USER: ์์ด๋
WORDPRESS_DB_PASSWORD: ํจ์ค์๋
networks:
net01:
volumes:
vol01:
vol02:
Docker-compose
๋ช
๋ น์ด
โ
์คํ
Docker-compose
ํ์ผ์ ์คํํ๋ ค๋ฉดย docker-compose
ย ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
โ
Container
์ฃผ๋ณ ํ๊ฒฝ์ ์์ฑ
1
2
| docker-compose -f ์ปดํฌ์ฆ_ํ์ผ_๊ฒฝ๋ก up ์ต์
docker-compose up -d # ํ์ฌ ์์
๋๋ ํ ๋ฆฌ๋ฅผ ์ปดํฌ์ฆ์ฉ ํด๋๋ก ์ฌ์ฉ
|
โ
Container
์ ๋คํธ์ํฌ๋ฅผ ์ญ์
1
| docker-compose -f ์ปดํฌ์ฆ_ํ์ผ_๊ฒฝ๋ก down ์ต์
|
โ
Container
๋ฅผ ์ข
๋ฃ
1
| docker-compose -f ์ปดํฌ์ฆ_ํ์ผ_๊ฒฝ๋ก stop ์ต์
|
Docker-compose
๋ Container
์ ์ด๋ฆ์ ๋ฐ๊พผ๋ค.
Docker-compose
๋ก ์คํํ Container
์ ์ด๋ฆ์ ์์๋ก ๊ฒฐ์ ๋๋ค.- ์๋ฅผ ๋ค์ดย
penguin
์ด๋ผ๋ ์ด๋ฆ์ Container
๋ฅผ ์์ฑํ๋ฉด Docker-compose
๊ฐ ์ค์ ๋ก ์์ฑํ Container
์ ์ด๋ฆ์ย com_folder_penguin_1
๊ณผ ๊ฐ์ด ํด๋ ์ด๋ฆ๊ณผ ๋ฒํธ๊ฐ ๋ถ๋๋ค. - ๋จย
-f
ย ์ต์
์ ์๋ตํ๋ค๋ฉด ํด๋ ์ด๋ฆ์ ๋ถ์ง ์๋๋ค.
์ค์ผ์ผ๋ง
--scale
ย ์ต์
์ ๋ถ์ด๋ฉด ๊ฐ์ ๊ตฌ์ฑ์ Container
๋ฅผ ์ฌ๋ฌ ์ธํธ ๋ง๋ ๋ค.
1
| docker-compose -f C:\Users\์ ์ ๋ช
\com_folder\docker-compose.yml up --scale penguin=3
|
- ๋จ ํฌํธ ๋ฒํธ๊ฐ ์ค๋ณต๋๋ฉด
Container
๊ฐ ์คํ๋์ง ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.
ํ๊ณ
- ์ฑ
์ ์ ์๋
Container
์ด๋ฆ์ ๊ฐ๊ธ์ ์๋์ง ์๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. - ํ์ง๋ง, ํ์๊ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ
Docker-compose
ํ์ผ์ ํตํด ๊ฐ๋ฐ์ ์งํํ ๊ฒฝํ์ ๋๋์๋ณด๋ฉด, Container
์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ํจ์ฌ ์ ์ง ๋ณด์๊ฐ ํธํ์๋ค. Docker-compose
๋ Container
์ด๋ฆ์ ์์๋ก ๋ฐ๊พธ์ด ๋ฒ๋ฆฌ๋๋ฐ, ๋จ์ํ Docker-compose
์ ๊ท์น์ ๋ฐ๋ฅด๋ ๊ฒ๋ณด๋ค๋ ๊ฐ๋ฐ์๊ฐ Container
์ด๋ฆ์ ์ค์ ํ์ฌ ์ง์ ์ ์ดํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๋ค๊ณ ์๊ฐํ๋ค.