docker์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์ ๋ฒ์ ํ์๋๋ฐ ์ด๋ฒ์๋ docker-compose์ ๋ํด์ ์์๋ณด๊ณ ์ ํ๋ค. docker-compose๊ฐ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒ์ ์ฐ์ผ ์ ์์์ง ์์ ๋ฅผ ํตํด ์์๋ณด๋๋ก ํ์!!
์์ ์๊ฐ์ ๋ฐฐ์ด ๋ด์ฉ ๊ทธ๋๋ก ๋งํด๋ณด์๋ฉด interactive ๋ฐฉ๋ฒ ๋๋ dockerfile๋ก image๋ฅผ ๋ง๋๋ ๊ฒ์ ๋จ์ผ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ๋ค์์ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ ์ฐ๋์ํค๊ธฐ ์ํ ๋ฐฉ๋ฒ์ docker-compose๋ก ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค!! ๋ฐ๋ผ์ docker-compose๋ ๋ค์์ docker container๋ค์ ๊ท์ ํ๊ณ ์คํํ๊ณ ๊ด๋ฆฌํ๋ ์๋ํ ๋๊ตฌ๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ ํ์ผ์ docker-compose.yml์ด๋ผ๋ ํ์ผ์ ์ฌ์ฉํ์ฌ dockerfile์์ ๋ฐฐ์ด ๋ด์ฉ์ฒ๋ผ ๋น๋๋ฅผ ํตํด ๋ฐ๋ก ์คํ์ํฌ ์ ์๋ค. docker-compose ์ฌ์ฉํ๋ 3๊ฐ์ง ์์๋
๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ ๊ณต์๋ฌธ์์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์๋ค!!
๐ https://docs.docker.com/compose/
๐ https://docs.docker.com/compose/install/
์ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ docker-compose๋ฅผ ์ค์นํ ์ ์๋ค!!
์ด ๋ ๋๋ ์์
์ ์งํํ๋ฉด์ ec2 ubuntuํ๊ฒฝ์์ ์ค์ต์ ์งํํ์์๊ธฐ ๋๋ฌธ์ linuxํ๊ฒฝ ์ค์น๋ฅผ ์งํํ์๋ค.
// ์ค์น
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
// ๊ถํ ๋ถ์ฌ
sudo chmod +x /usr/local/bin/docker-compose
// ์ค์น ํ์ธ
docker-compose --version
// ์คํํ๊ธฐ
// -d ๋ช
๋ น์ด๋ฅผ ๋ถ์ด๋ฉด ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ
docker-compose up
docker-compose up -d
//์คํ ์ข
๋ฃ
docker-compose down
๐ https://docs.docker.com/samples/wordpress/
docker ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด๋ณด๋ฉด wordpress์ ๋ํ ์์ ๊ฐ ๋ํ๋์๋ค. ์ด๋ wordpress์ mySQL DB container๋ฅผ ๊ฐ๊ฐ ๋ง๋ค๊ณ ์ด๋ค์ ์ฐ๋ํ๋ ์์ ๋ก docker-compose.yml ํ์ผ์ ์คํํ์์ ๋ ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค!!
๋ํ ์์ ์์ ์ฃผ์ด์ง ํฌํธ ๋ฒํธ๋ 8000๋ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ec2๋ฅผ ์ฌ์ฉํด์ docker ์คํํด๋ณด๊ณ ์์๋ค๋ฉด inbound rule์ 8000๋ฒ์ ์ถ๊ฐํ์ฌ
docker-compose up -d
๋ช ๋ น์ด๋ฅผ ์คํ์์ผ๋ณด๋๋ก ํ์!!
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
์์ ๋ด์ฉ์ด docker-compose.yml ํ์ผ์ด๋ฉฐ ์ด๋ฅผ ์์ฑํ๊ณ ๊ทธ๋๋ก docker-compose up -d๋ฅผ ์คํ์์ผ์ฃผ๋ฉด ์ด์ ๋ํ ์ด๋ฏธ์ง wordpress์ mySQL์ ๋ํด ๋๊ฐ ์๊ธฐ๊ณ ์ปจํ ์ด๋๋ ๊ฐ๊ฐ ์๊ฒจ 8000๋ฒ์์์ wordpress ์ฌ์ดํธ๋ฅผ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค!!
์ฌ๊ธฐ์ docker-compose.yml์ ํ์ผ์ ์ด์ง ์ง๊ณ ๋์ด๊ฐ์๋ฉด !! volumes์ ๋ํ ๋ด์ฉ์ด ์์ฑ๋์ด์๋ค.
์ด volume์ db๋ฅผ ์ฌ์ฉํ๋ ์ปจํ ์ด๋์ ๊ฒฝ์ฐ ํ์์ ์ด๋ผ๊ณ ๋ณผ ์ ์๋๋ฐ, ํธ์คํธ ๊ธฐ๊ณ์ on-disk persistent filesystem์ container์ in-memory virtual filesystem์ ๋ง์ดํธํ์ฌ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์ด๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง์ง ์๊ฒํ๋ ๊ฒ์ด๋ค!! ํธ์คํธ ๊ธฐ๊ณ์ ํ์ผ ์์คํ ์ ์ ์ฅ๋์ด ๋ค์ ๋์ผ ์ปจํ ์ด๋๊ฐ ์์๋์์ ๋๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ธฐ๋ฅ์ด๋ค!!
์ค์ ๋ก ์ docker-compose.ymlํ์ผ์ ์ด์ฉํ wordpress์์ ๋ฅผ ์คํ์์ผ๋ณด๋ฉด ์์์ ๊พธ๋ฏผ wordpress์ ๋ํ ๋ด์ฉ์ด ํธ์คํธ ๊ธฐ๊ณ๋ฅผ ์ข ๋ฃํ์ฌ ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๋๋ผ๋ ํ์ ์์์์ผฐ์ ๋ ์ด์ ๋ํ ๋ด์ฉ์ด ๊ทธ๋๋ก ๋จ์์๋ ๊ฒ์ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค!!
docker-compose๋ฅผ wordpress์ ํจ๊ป ์์ ๋ฅผ ํตํด ์ ๋ฆฌํด๋ณด์๋ค!! docker-compose๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฌ๋ฌ ๋ช
๋ น์ด๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์
๋ ฅํ์ฌ image์ container๋ฅผ ๋ง๋๋ ์ผ์ ์ค์ฌ ํ๋์ ํ์ผ์ ํตํด ์ฌ๋ฌ container๋ค์ ๊ด๋ฆฌํ ์ ์๋ค๋ ์ ์ ์์ง ๋ง์!!
๋ํ ์ด๋ฅผ ์ด์ฉํ docker-compose.yml ํ์ผ์ ํตํด volume์ ๋ํ ๋ด์ฉ๋ ํ์ธํ ์ ์์๋๋ฐ, ์ปจํ
์ด๋๊ฐ ์ข
๋ฃ๋ ์ดํ๋ก๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ ์ ์๋ docker-volume๋ ๊ผญ ๊ธฐ์ตํ์!!
์ด์ ๊ณง 5์์ด๋ค ๋ฒ์จ
ํ์ดํ
~!!