D: μ»΄ν¨ν μΈκ³μμ νμ μ μΌμΌν¨ λ컀(Docker)! π κ°λ°μλΌλ©΄ ν λ²μ―€ λ€μ΄λ΄€μ μ΄ κΈ°μ μ μ½κ³ μ¬λ―Έμκ² μ€λͺ ν΄λλ¦¬κ² μ΅λλ€.
1οΈβ£ λ컀(Docker)μ κΈ°λ³Έ κ°λ
λ컀λ 컨ν μ΄λ κΈ°λ° κ°μν κΈ°μ λ‘, μ ν리μΌμ΄μ μ λ 립λ νκ²½μμ μ€νν μ μκ² ν΄μ€λλ€.
- κ°μ λ¨Έμ (VM) vs λ컀 컨ν
μ΄λ
- VM: μ 체 OSλ₯Ό κ°μν β 무κ²κ³ λλ¦Ό (μ: VirtualBox)
- λ컀: νΈμ€νΈ OSμ 컀λμ 곡μ β κ°λ³κ³ λΉ λ¦! β‘
π‘ κ°λ¨ν μμ
- VMμ “μννΈ ν μ±λ₯Ό ν΅μ§Έλ‘ μλ”νλ κ².
- λμ»€λ “μνλ λ°©λ§ κ³¨λΌ μ¬μ©”νλ κ°λ !
2οΈβ£ λ컀μ ν΅μ¬ μμ οΏ½
-
μ΄λ―Έμ§(Image)
- μ€ν κ°λ₯ν ν¨ν€μ§ (μ: μ°λΆν¬ + νμ΄μ¬ + λΌμ΄λΈλ¬λ¦¬)
- λ κ³ λΈλ‘μ²λΌ 쑰립 κ°λ₯!
- 곡μ μ μ₯μ: Docker Hub
-
컨ν μ΄λ(Container)
- μ΄λ―Έμ§λ₯Ό μ€νν μ€μ μΈμ€ν΄μ€
- λ 립λ 곡κ°μμ μλ (μ: μΉ μλ² μ»¨ν μ΄λ, DB 컨ν μ΄λ)
-
λ컀 νμΌ(Dockerfile)
- μ΄λ―Έμ§λ₯Ό λ§λλ μ€κ³λ
FROM ubuntu:20.04 RUN apt-get update && apt-get install -y python3 COPY app.py /app/ CMD ["python3", "/app/app.py"]
- μ΄λ―Έμ§λ₯Ό λ§λλ μ€κ³λ
3οΈβ£ λ컀μ μ₯μ β¨
- μΌκ΄μ± μλ νκ²½: “λ΄ λ‘컬μμλ λλλ°…” λ¬Έμ ν΄κ²°!
- λΉ λ₯Έ λ°°ν¬: μ΄λ―Έμ§λ‘ ν¨ν€μ§ν΄ μ΄λμλ μ€ν κ°λ₯.
- 리μμ€ ν¨μ¨μ±: VMλ³΄λ€ μ μ CPU/λ©λͺ¨λ¦¬ μ¬μ©.
- νμ₯μ±: μΏ λ²λ€ν°μ€(Kubernetes)μ μ°λν΄ λκ·λͺ¨ μλΉμ€ κ΄λ¦¬ κ°λ₯.
4οΈβ£ μ€μν μμλ‘ μ΄ν΄νκΈ° οΏ½
- κ°λ°μ Aμ κ°λ°μ Bκ° κ°μ νλ‘μ νΈλ₯Ό μμ
ν λ:
- A: “μ°λΆν¬ 20.04 + Node.js 14” νκ²½μμ κ°λ°
- B: “μλμ° + Node.js 16” β μλ¬ λ°μ!
- ν΄κ²°μ± : λμ»€λ‘ λμΌν μ΄λ―Έμ§λ₯Ό μ¬μ©νλ©΄ νκ²½ μ°¨μ΄ μμ!
5οΈβ£ 5λΆ μ€μ΅: λ컀 체νν΄λ³΄κΈ° π οΈ
- λ컀 μ€μΉ (곡μ μ¬μ΄νΈ)
- ν°λ―Έλμμ λ€μ λͺ
λ Ήμ΄ μ€ν:
docker run hello-world
- κ²°κ³Ό:
Hello from Docker! This message shows your installation works correctly.
6οΈβ£ λ컀μ λ―Έλ π
- ν΄λΌμ°λ λ€μ΄ν°λΈμ ν΅μ¬ κΈ°μ
- λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μ κΆν© μ΅κ³ !
- CI/CD(μ§μμ ν΅ν©/λ°°ν¬) νμ΄νλΌμΈμ νμ πΌ
β λ§λ¬΄λ¦¬
λμ»€λ “κ°λ°λΆν° λ°°ν¬κΉμ§” νκ²½μ λ¨μννλ κ°λ ₯ν λꡬμ
λλ€.
π μ§κΈ μμν΄λ³΄μΈμ! 첫 컨ν
μ΄λλ₯Ό μ€ννλ μκ°, κ·Έ νΈλ¦¬ν¨μ λλΌκ² λ κ±°μμ.
π κΆκΈν μ μ λκΈλ‘ λ¨κ²¨μ£ΌμΈμ! ν¨κ» κ³ λ―Όν΄λ립λλ€ π