๐ Docker ์ ๋ฌธ โ ค - Docker-compose
๐ Docker ์
๋ฌธ โ
ค - Docker-compose
๐
ใ๊ทธ๋ฆผ๊ณผ ์ค์ต์ผ๋ก ๋ฐฐ์ฐ๋ 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
์ด๋ฆ์ ์ค์ ํ์ฌ ์ง์ ์ ์ดํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๋ค๊ณ ์๊ฐํ๋ค.
This post is licensed under CC BY 4.0 by the author.