728x90
๋ฐ์ํ
Chapter 7 - ๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ตํ์
SECTION 01 ๋์ปค ์ปดํฌ์ฆ๋?
- ์์คํ ๊ตฌ์ถ๊ณผ ๊ด๋ จ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ YAML ํ์ผ์ ๊ธฐ์ฌํด ๋ช ๋ น์ด ํ๋ฒ์ ์์คํ ์ ์ฒด๋ฅผ ์คํํ๊ณ ์ข ๋ฃ์ ํ๊ธฐ๊น์ง ํ๋ฒ์ ํ๋๋ก ๋์์ฃผ๋ ๋๊ตฌ
up ์ปค๋งจ๋
- docker-compose up ์ปค๋งจ๋๋ docker run ์ปค๋งจ๋์ ๋น์ทํจ.
- yml ํ์ผ์ ๊ธฐ์ฌ๋ ๋ด์ฉ๋๋ก ์ด๋ฏธ์ง๋ฅผ ๋ด๋ ค๋ฐ๊ณ , ์ปจํ ์ด๋ฅผ ์์ฑ ๋ฐ ์คํ.
down ์ปค๋งจ๋
- ์ปจํ ์ด๋์ ๋คํธ์ํฌ๋ฅผ ์ ์ง ๋ฐ ์ญ์ .
- ๋ณผ๋ฅจ๊ณผ ์ด๋ฏธ์ง๋ ์ญ์ ๋์ง ์์.
- ์ปจํ ์ด๋์ ๋คํธ์ํฌ ์ญ์ ์์ด ์ข ๋ฃ๋ง ํ๊ณ ์ถ๋ค๋ฉด stop ์ปค๋งจ๋ ์ฌ์ฉ.
Dockerfile ๊ณผ docker-compose ์ฐจ์ด์
- ๋์ปค ์ปดํฌ์ฆ๋ ์ปจํ ์ด๋์ ์ฃผ๋ณ ํ๊ฒฝ (๋คํธ์ํฌ, ๋ณผ๋ฅจ) ์ ํจ๊ป ๋ง๋ค ์ ์๋ค.
- Dockerfile ์คํฌ๋ฆฝํธ๋ ์ค์ง ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ฒ์ผ๋ก, ๋คํธ์ํฌ๋ ๋ณผ๋ฅจ์ ๋ง๋ค ์ ์๋ค.
SECTION 02 ๋์ปค ์ปดํฌ์ฆ์ ์ค์น์ ์ฌ์ฉ๋ฒ
- ๋์ปค ์ปดํฌ์ฆ ํ์ผ ์ด๋ฆ์ docker-compose.yml ์ ์ฌ์ฉํด์ผ ํ๋ค.
- -f ์ต์ ์ ์ด์ฉํด์ ํ์ผ ์ด๋ฆ์ ๋ณ๊ฒฝํด์ ์ฌ์ฉํ ์ ์๋ค.
- ex) docker-compose-dev.yml, docker-compose-prod.yml
- ์ ์ ํ์ผ์ ํ ํด๋์ ํ๋๋ง ์์ ์ ์๋ค.
- ์ฌ๋ฌ ๊ฐ์ ์ ์ ํ์ผ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ทธ ๊ฐ์๋งํผ ํด๋๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
# docker-compopse V1
$ sudo pip3 install docker-compose
# docekr compose V2
$ sudo apt-get install docker-compose-plugin
docker-compose ์ docker compose ์ฐจ์ด์
- docker-compose ์ ๊ฒฝ์ฐ Python ์ผ๋ก ๊ฐ๋ฐ๋ V1 ๋ฒ์ .
- docker compose ์ ๊ฒฝ์ฐ Go lang ์ผ๋ก ๊ฐ๋ฐ๋ V2 ๋ฒ์ .
- docker-compose ์ ๊ฒฝ์ฐ 23๋ 6์ ๋ถ๋ก ์ง์ ๋ง๋ฃ๋จ.
- docker compose ๋ฐฉ์์์๋ ๊ธฐ์กด์ ๋ฐฉ์๊ณผ ์์ดํ ๋ถ๋ถ์ด ์กด์ฌํจ. ์ ์ฐพ์๋ณผ ๊ฒ
SECTION 03 ๋์ปค ์ปดํฌ์ฆ ํ์ผ์ ์์ฑํ๋ ๋ฒ
- ์ฒซ ์ค์ ๋์ปค ์ปดํฌ์ฆ ๋ฒ์ ์ ๊ธฐ์ฌ
- ์ฃผ ํญ๋ชฉ services. networks, volumes ์๋์ ์ค์ ๋ด์ฉ์ ๊ธฐ์ฌ
- YAML ์์ฑ ํ์ค์ ์ค์ํ๋ค.
์ฃผ ํญ๋ชฉ
ํญ๋ชฉ ๋ด์ฉ
services | ์ปจํ ์ด๋ ์ ์ |
networks | ๋คํธ์ํฌ ์ ์ |
volumes | ๋ณผ๋ฅจ์ ์ ์ |
์์ฃผ ๋์ค๋ ์ ์ ๋ด์ฉ
ํญ๋ชฉ ์ต์ ๋ด์ฉ
version | - | ๋์ปค ์ปดํฌ์ฆ์ ๋ฒ์ ์ ๊ธฐ์ฌํ๋ค. |
services | - | ์ปจํ ์ด๋๋ฅผ ์ ์ํ๋ค. (์ปจํ ์ด๋์ ์งํฉ์ฒด๋ฅผ ์ฃผ๋ก ์๋น์ค๋ผ๊ณ ํ๋ค.) |
image | ์ด๋ฏธ์ง ์ธ์ | ์ฌ์ฉํ ์ด๋ฏธ์ง๋ฅผ ์ง์ |
networks | —net | ์ ์ํ ๋คํธ์ํฌ๋ฅผ ์ง์ |
volumes | -v, —mount | ์คํ ๋ฆฌ์ง ๋ง์ดํธ(๋ณผ๋ฅจ)๋ฅผ ์ค์ |
ports | -p | ํฌํธ ์ค์ |
environment | -e | ํ๊ฒฝ๋ณ์ ์ค์ |
depends_on | ์์ | ๋ค๋ฅธ ์๋น์ค์ ๋ํ ์์กด๊ด๊ณ๋ฅผ ์ ์ |
restart | ์์ | ์ปจํ ์ด๋ ์ข ๋ฃ ์ ์ฌ์์ ์ฌ๋ถ๋ฅผ ์ค์ |
SECTION 04 ๋์ปค ์ปดํฌ์ฆ ์คํ
$ docker-compose -f [DOCKER_COMPOSE_PATH] up [OPTIONS]
$ docker-compose -f [DOCKER_COMPOSE_PATH] down [OPTIONS]
wordpress docker-compose.yml
version: "3"
services:
maria000ex17:
image: mariadb
networks:
- wordpress000net4
volumes:
- maria000vol17:/var/lib/mysql
restart: always
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --defaultauthentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: myrootpass
MYSQL_DATABASE: wordpress000db
MYSQL_USER: wordpress000kun
MYSQL_PASSWORD: wkunpass
wordpress000ex18:
depends_on:
- maria000ex17
image: wordpress
networks:
- wordpress000net4
volumes:
- wordpress000vol18:/var/www/html
ports:
- 8088:80
restart: always
environment:
WORDPRESS_DB_HOST: maria000ex17
WORDPRESS_DB_NAME: wordpress000db
WORDPRESS_DB_USER: wordpress000kun
WORDPRESS_DB_PASSWORD: wkunpass
networks:
wordpress000net4:
volumes:
maria000vol17:
wordpress000vol18:
728x90
๋ฐ์ํ