Docker Composeκ° λκΉ?
κ°κ° νλμ© κ΄λ¦¬νλ 컨ν μ΄λλ₯Ό νλλ‘ λͺ¨μμ κ΄λ¦¬νκΈ° μν ν΄
(νμ¬ λ΄κ° μ§ν μ€μΈ νλ‘μ νΈμμ Spring λ°±μλ μλ², React νλ‘ νΈ μλ², MariaDB, Redisμ μ¬λ¬ 컨ν μ΄λλ₯Ό λͺ¨μμ κ΄λ¦¬ν μ μμλ€.)
μ΄λ€ νμμΈμ§ κ°λ΅νκ² μ€λͺ ν΄μ€
docker-compose.yml νμΌμ μμ±νμ¬ μ€ννλ©΄ νλ²μ μ΄λ―Έμ§λ₯Ό μμ±νκ³ μ€νν μ μλ€.
yml νμμ λν΄μ μ‘°κΈλ§ λ§νμλ©΄ key-value νμμ΄λ©° int, boolean, String νμ μ μ§μνλ€.
리μ€νΈμ μμλ λ€μ¬μ°κΈ°λ€μ¬ μ°κΈ° ν - λ₯Ό λΆμ΄κ³ , 리μ€νΈκ° μλ κ²½μ°λ λ€μ¬ μ°κΈ°λ‘ ꡬλΆνλ€.
μ΄μΈμ |, |-, ---, > λ± λ€μν κΈ°νΈκ° μλλ° λμ€μ λ°λ‘ μμΈν μμ보μ!
version: "3"
services:
database:
image: mariadb:latest
volumes:
- ./mymariadbdata:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234
- MYSQL_DATABASE=test
ports:
- "3306:3306"
μλ μ°μ DBλ₯Ό μμλ‘ μμ±ν docker-compose.yml νμΌμ΄λ€.
μ΄μ μ‘°κΈ λ μμΈν λ§ν΄μ€
μ μμμ μλκ² κΉμ§ ν¬ν¨ν΄μ κ°μ₯ ν° μΉ΄ν
κ³ λ¦¬λ‘ 4κ°μ§κ° μ‘΄μ¬νλ€.
1. version
Docker compose νμΌ ν¬λ§· λ²μ μ μλ―Ένλ©° νμ¬ μ¬μ© μ€μΈ docker λ²μ μ λ§κ² μ€μ νλ©΄ λλ€.
μ²μμ λλ νμ¬ λ΄ λ¬Έμμ λ²μ μ μ λ건 μ€ μκ³ μλͺ» μ°κ³ μμλ€...
2. services
νλ μ΄μμ 컨ν
μ΄λλ₯Ό μ€μ νλ€.
μμ μμμμλ databaseκ° μ»¨ν
μ΄λμ μ΄λ¦μΈ κ²μ΄λ€.
μ΄ μΉ΄ν
κ³ λ¦¬ λ΄μμλ μ μμμ²λΌ
μ¬μ©ν μ΄λ―Έμ§λ₯Ό μ€μ νκ±°λ μμμλ μμ§λ§ restartλΌλ keyμ valueλ₯Ό μ€μ νμ¬ νμ λ€μ΄λλ©΄ λ€μ μ¬μμνλλ‘ νλ μ΅μ
μ μ€ μλ μλ€. λν env_fileμ΄λΌλ keyλ₯Ό ν΅ν΄ μμμ μ§μ μ μΈν λ°μ΄ν°λ² μ΄μ€μ ν¨μ€μλ κ°μ μ 보λ₯Ό νκ²½λ³μ νμΌλ‘ λ°λ‘ λΆλ¦¬νμ¬ κ΄λ¦¬νλλ‘ ν μλ μλ€.
portsλ ""(μλ°μ΄ν)λ₯Ό λΆμ¬μ€ μ΄μ λ yaml λ¬Έλ²μμ μκ°μ λ€λ£¨λ λ¬Έλ²κ³Ό μΆ©λνμ§ μκΈ° μν΄μμ΄λ€.
3. volumes
κ° μ»¨ν
μ΄λλ§λ€ λ°λ‘ volume μ€μ μ νλκ²μΌλ‘ λμ²΄κ° κ°λ₯νλ©° -vμ κ°μ κΈ°λ₯μ μ΅μ
μ΄λ€.
4. networks
κ° μ»¨ν
μ΄λλ§λ€ λ°λ‘ λ€νΈμν¬λ₯Ό λΆλ¦¬νκΈ° μν μ€μ μ νλ©° μ΅μ
μ΄λ€.
μ΄λ»κ² λͺ λ Ήν΄μΌ νλ?
μ°μ κΈ°λ³Έμ μΌλ‘ μλ λͺ λ Ήμ docker-compose.yml νμΌμ΄ μλ ν΄λμμ μ λ ₯ν΄μΌ νλ€.
1. μ€ν
docker-compose up <μ΅μ
>
μ λͺ
λ Ήμ ν΅ν΄ μ΄λ―Έμ§λ₯Ό μμ±νκ³ μ»¨ν
μ΄λλ₯Ό μ€ννκ² λλ€.
μ΅μ
μΌλ‘λ -d(λ°±κ·ΈλΌμ΄λ μ€ν) --no-build(μ΄λ―Έμ§λ₯Ό λΉλνμ§ μμ) --build(μ΄λ―Έμ§ μ¬λΉλ) --no-deps(λ§ν¬ μλΉμ€λ₯Ό μμX) -t(컨ν
μ΄λμ νμμμμ μ΄λ‘ μ§μ ) --scale SERVICE={serviceμ}(μλΉμ€μ μλ₯Ό μ§μ )
2. μ€μ§
docker-compose stop
3. 컨ν μ΄λ(λ€) μμ
docker-compose down
Spring Applicationκ³Ό DBλ₯Ό Docker Composeλ‘ κ°μ΄ μ€μ ν΄λ³΄μ
version: "3"
services:
back:
build:
context: ./springProject
dockerfile: Dockerfile_Spring
links:
- "db:mariadb"
ports:
- "80:8080"
container_name: backend
depends_on:
- db
db:
image: mariadb:latest
volumes:
- ./mymariadbdata:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=1234
- MYSQL_DATABASE=test
ports:
- "3306:3306"
- buildλ₯Ό μ΄μ©ν΄μ Dockerfileμ μμΉμ μ΄λ¦μ μ€μ νμ¬ μ§μ μ΄λ―Έμ§λ₯Ό μ€νν λ λΉλν΄μ μ¬μ©ν μλ μλ€.
- depends_onμ μ¬λ¬κ°μ 컨ν
μ΄λκ° λμμ§ λ μμλ₯Ό 보μ₯νμ§ μκΈ°μ λ°±μλ μ΄ν리μΌμ΄μ
μ΄ λλΉλ³΄λ€ λ¨Όμ λμμ§λ©΄ μλ¬κ° λλ μν©μ λ°©μ§νκΈ° μν΄ μ€μ νλ κ²μ΄λ€. μ¦, μ΄ μ»¨ν
μ΄λλ₯Ό μμ± λ° μ€νλκΈ° μ μ μ¬μ μ μμ± λ° μ€νλμ΄μΌ νλ 컨ν
μ΄λλ₯Ό μ μνλ€.
μν©μ λ°λΌμ νΉμ λͺ¨λ₯΄λ restart μ΅μ μ κ°μ΄ μ°λκ² μ’μ κ² κ°λ€.
'π³ DevOps > Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Dockerfile μμ±λ² (1) | 2023.01.02 |
---|---|
Docker run λͺ λ Ήμ λν΄μ μμ보μ (0) | 2022.12.31 |