[Docker] ๐ ๋์ปค ์ปดํฌ์ฆ (Docker Compose)
๐ ๋์ปค ์ปดํฌ์ฆ
LAMP
์ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃฐ ๋, ์ฌ๋ฌ ์ปจํ
์ด๋๋ฅผ ํจ๊ป ์ฌ์ฉํ๊ฒ ๋๋ค.
์ด๋ ์ฌ๋ฌ ์ปจํ
์ด๋์ ์ด๋ฏธ์ง ๋ฐ ๋ณผ๋ฅจ์ ์์ฑ, ์ญ์ , ์ข
๋ฃ, ํ๊ธฐ์ ๊ฐ์ ์ผ๋ค์ ํด์ค์ผ ํ๋๋ฐ, ์ด๋ฅผ ์ผ์ผ์ด ps ์ปค๋งจ๋๋ก ํ์ธํ๊ธฐ๋ ์๊ณ ์ค๋ฝ๋ค.
๋ฐ๋ผ์ ์์ ๊ฐ์ด ์์คํ
๊ตฌ์ถ๊ณผ ๊ด๋ จ๋ ๋ช
๋ น์ด๋ฅผ ํ๋์ ํ
์คํธํ์ผ(์ ์ ํ์ผ)์ ๊ธฐ์ฌํด ๋ช
๋ น์ด ํ๋ฒ์ ์์คํ
์ ์ฒด๋ฅผ ์คํํ๊ณ ์ข
๋ฃ์ ํ๊ธฐ๊น์ง ํ๋ฒ์ ํ๋ ๋๊ตฌ
๊ฐ ๋ฐ๋ก ๋์ปค ์ปดํฌ์ฆ
์ด๋ค.
๋์ปค ์ปดํฌ์ฆ๋ ์์คํ
๊ตฌ์ถ์ ํ์ํ ํ์ผ์ YAML(YAML Ain't a Markup Language)
ํฌ๋งท์ผ๋ก ๊ธฐ์ฌํ ์ ์ ํ์ผ์ ์ด์ฉํด ์ ์ฒด ์์คํ
์ ์ผ๊ด ์คํ/ ์ผ๊ด ์ข
๋ฃ ๋ฐ ์ญ์ ๋ฅผ ํ ์ ์๋ ๋๊ตฌ์ด๋ค.
๋์ปค ์ปดํฌ์ฆ๋ ๋์ปค ์์ง๊ณผ ๋ณ๊ฐ์ ์ํํธ์จ์ด๋ก ์ด๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ํ ๋์ผํ๋ค.
๋์ปค ์ปดํฌ์ฆ์ ์ฟ ๋ฒ๋คํฐ์ค์ ์ฐจ์ด์
- ๋์ปค ์ปดํฌ์ฆ๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค.
- ์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ ์ด๋ ๊ด๋ฆฌ๊น์ง ๊ฐ๋ฅํ๋ค.
๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Dockerfile
์คํฌ๋ฆฝํธ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋์ฒ๋ผ ํธ์คํธ ์ปดํจํฐ์ ํด๋๋ฅผ ๋ง๋ค๊ณ ์ด ํด๋์ ์ ์ ํ์ผ(YAML)์ ๋ฐฐ์นํ๋ค.
๐ ์ปดํฌ์ฆ ํ์ผ(์ ์ ํ์ผ) ์์ฑ๋ฒ
YAML
ํ์์ ๋ฐ๋ฅด๋ฉฐ ํ์ฅ์๋ .yml
์ด๋ค.
ํ์ผ ์ด๋ฆ์ ๋ฌด์กฐ๊ฑด docker-compose.yml
์ด์ฌ์ผ ํ๋ฉฐ, ์ด๋ฅผ ๋ฐ๊พธ๊ธฐ ์ํด์๋ -f
์ต์
์ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
๊ณต๋ฐฑ์ ๋ฐ๋ผ ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก, ์ฒ์ ์ฌ์ฉํ ๊ณต๋ฐฑ ๊ฐ์๋งํผ ๋ค์๋ ๋์ผํ๊ฒ ๋ง์ถฐ์ค์ผ ํ๋ค.
version: "3"
services:
์ปจํ
์ด๋_์ด๋ฆ:
image: ์ด๋ฏธ์ง_์ด๋ฆ
networks:
- ๋คํธ์ํฌ_์ด๋ฆ
ports:
- ํฌํธ_์ค์
...
์ปจํ
์ด๋_์ด๋ฆ2:
image: ์ด๋ฏธ์ง_์ด๋ฆ
networks:
- ๋คํธ์ํฌ_์ด๋ฆ
...
networks:
๋คํธ์ํฌ_์ด๋ฆ:
volumes:
๋ณผ๋ฅจ_์ด๋ฆ1:
๋ณผ๋ฅจ_์ด๋ฆ2:
...
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐