π¦ 컨ν
μ΄λ κΈ°μ vs Docker β κ°λ
μ λλ‘ μ΄ν΄νκΈ°
π§ 컨ν
μ΄λ(Container) κΈ°μ μ΄λ?

컨ν
μ΄λ κΈ°μ μ μ ν리μΌμ΄μ
κ³Ό κ·Έ μ€ν νκ²½μ νλμ ν¨ν€μ§λ‘ λ¬Άμ΄μ μ΄λμλ λμΌνκ² μ€νν μ μλλ‘ νλ κΈ°μ
μ½κ² λ§νλ©΄:
π βλ΄ μ»΄ν¨ν°μμ λλ κ² λ€λ₯Έ νκ²½μμλ λκ°μ΄ λμκ°κ² λ§λλ κΈ°μ β
β
ν΅μ¬ νΉμ§
- OS λ 벨 κ°μν
- VMμ²λΌ OSλ₯Ό ν΅μ§Έλ‘ λμ°μ§ μμ
- νΈμ€νΈ OS 컀λμ 곡μ
- λΉ λ₯Έ μ€ν μλ
- VMλ³΄λ€ ν¨μ¬ κ°λ³κ³ λΉ λ¦
- νκ²½ μΌκ΄μ±
- κ°λ° / ν
μ€νΈ / μ΄μ νκ²½ μ°¨μ΄ λ¬Έμ ν΄κ²°
βοΈ μ΄λ»κ² λμνλ?
컨ν
μ΄λ κΈ°μ μ Linuxμ κΈ°λ₯μ κΈ°λ°μΌλ‘ νλ€:
- Namespace β νλ‘μΈμ€ 격리
- Cgroups β μμ μ ν (CPU, λ©λͺ¨λ¦¬)
π μ¦, 컨ν
μ΄λλ βκ°μ λ¨Έμ βμ΄ μλλΌ
격리λ νλ‘μΈμ€ μ€ν νκ²½μ΄λ€.
π§ 컨ν
μ΄λ κΈ°μ μ Docker μ΄μ λΆν° μ‘΄μ¬
β 컨ν
μ΄λλ Dockerκ° λ§λ κ°λ
μ΄ μλλ€
Docker μ΄μ μλ μ΄λ―Έ 컨ν
μ΄λ κΈ°μ μ μ‘΄μ¬νλ€.
πΉ λνμ μΈ μ΄κΈ° 컨ν
μ΄λ κΈ°μ
- chroot (1979)
νμΌ μμ€ν
격리
- FreeBSD Jails (2000)
νλ‘μΈμ€ + λ€νΈμν¬ κ²©λ¦¬
- LXC (2008)
Linux κΈ°λ° μ»¨ν
μ΄λ κΈ°μ (Dockerμ κΈ°λ°)
π μ¦, Dockerλ βμμ ν μλ‘μ΄ κΈ°μ βμ΄ μλλΌ
κΈ°μ‘΄ 컨ν
μ΄λ κΈ°μ μ λ μ½κ² μΈ μ μκ² λ§λ κ²μ΄λ€.
π§ Dockerλ 무μμΈκ°?


Dockerλ 컨ν
μ΄λ κΈ°μ μ μ½κ² λ§λ€κ³ , λ°°ν¬νκ³ , μ€νν μ μλλ‘ λ§λ νλ«νΌ(λꡬ)μ΄λ€.
β
Dockerκ° ν μΌ (ν΅μ¬)
- μ¬μ©μ± κ°μ
볡μ‘ν LXCλ₯Ό μ½κ² μ¬μ©ν μ μλλ‘ μΆμν
- μ΄λ―Έμ§ κ°λ
λμ
μ€ν νκ²½μ μ΄λ―Έμ§(Image)λ‘ μ μ₯
μ¬μ¬μ© κ°λ₯
- μνκ³ κ΅¬μΆ
Docker Hub
β μ΄λ―Έμ§ 곡μ νλ«νΌ
π‘ ν μ€ μ 리
컨ν
μ΄λ = κΈ°μ
Docker = κ·Έ κΈ°μ μ μ½κ² μ°κ² ν΄μ£Όλ λꡬ
π 컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
(Container Orchestration)
π§ 컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
μ΄λ?
컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
μ μ¬λ¬ κ°μ 컨ν
μ΄λλ₯Ό μλμΌλ‘ λ°°ν¬, κ΄λ¦¬, νμ₯νλ κΈ°μ μ΄λ€.
μ½κ² λ§νλ©΄:
π β컨ν
μ΄λλ₯Ό μ¬λμ΄ μ§μ κ΄λ¦¬νμ§ μκ³ μλμΌλ‘ μ΄μν΄μ£Όλ μμ€ν
β
β μ νμνκ°?
Dockerλ§ μ¬μ©ν λλ₯Ό μκ°ν΄λ³΄μ π
- 컨ν
μ΄λ μκ° λ§μμ§λ©΄ κ΄λ¦¬κ° μ΄λ €μμ§
- μλ²κ° μ¬λ¬ λλΌλ©΄ λ°°ν¬κ° 볡μ‘ν΄μ§
- μ₯μ κ° λ°μνλ©΄ μ§μ λμν΄μΌ ν¨
π μ¬λμ΄ μ§μ κ΄λ¦¬νκΈ°μ νκ³κ° μμ
π Docker λ¨λ
μ¬μ© vs μ€μΌμ€νΈλ μ΄μ
| κ΅¬λΆ | Docker λ¨λ
μ¬μ© | 컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
|
|---|
| κ΄λ¦¬ λ°©μ | μλ | μλ |
| νμ₯ | μ§μ μ€ν νμ | μλ νμ₯ |
| μ₯μ λμ | μλ μ¬μμ | μλ 볡ꡬ |
| λ°°ν¬ | λͺ
λ Ήμ΄ κΈ°λ° | μ μΈ κΈ°λ° |
π₯ 컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
μ΄ ν΄κ²°νλ ν΅μ¬ λ¬Έμ 3κ°μ§
1οΈβ£ μλ νμ₯ (Auto Scaling)
β λ¬Έμ (Dockerλ§ μ¬μ©ν κ²½μ°)
- νΈλν½ μ¦κ° μ 컨ν
μ΄λλ₯Ό μ§μ μΆκ°ν΄μΌ ν¨
- νΈλν½ κ°μ μ λΆνμν 컨ν
μ΄λλ κ³μ μ μ§λ¨
π μμ ν μλ κ΄λ¦¬
β
ν΄κ²° (μ€μΌμ€νΈλ μ΄μ
)
νΈλν½μ λ°λΌ 컨ν
μ΄λ μλ₯Ό μλμΌλ‘ λλ¦¬κ³ μ€μΈλ€
- CPU / λ©λͺ¨λ¦¬ μ¬μ©λ κΈ°λ° μλ νμ₯
- μμ²λ κΈ°λ° νμ₯
π μλ² λΆν λμ μλν
2οΈβ£ μκ° λ³΅κ΅¬ (Self-Healing)
β λ¬Έμ (Dockerλ§ μ¬μ©ν κ²½μ°)
- 컨ν
μ΄λκ° μ£½μΌλ©΄ μλΉμ€κ° μ€λ¨λ¨
- μ¬λμ΄ μ§μ μ¬μμν΄μΌ ν¨
β
ν΄κ²° (μ€μΌμ€νΈλ μ΄μ
)
컨ν
μ΄λκ° μ£½μΌλ©΄ μλμΌλ‘ λ€μ μ€ννλ€
- μ₯μ κ°μ§
- μλ μ¬μμ
- λ€λ₯Έ μλ²μ μ¬λ°°μΉ
π μλΉμ€ μμ μ± ν보
3οΈβ£ μ μΈμ μΈνλΌ (Declarative Infrastructure)
β λ¬Έμ (Dockerλ§ μ¬μ©ν κ²½μ°)
- docker run, docker stop κ°μ λͺ
λ Ήμ΄λ‘ μ§μ κ΄λ¦¬ν΄μΌ ν¨
- νμ¬ μνλ₯Ό μ¬λμ΄ κ³μ μ κ²½ μ¨μΌ ν¨
π λͺ
λ Ήν(Imperative) λ°©μ
β
ν΄κ²° (μ€μΌμ€νΈλ μ΄μ
)
βμ΄λ€ μνκ° λμ΄μΌ νλμ§βλ§ μ μνλ©΄ μμ€ν
μ΄ μμμ λ§μΆλ€
μμ:
replicas: 3
image: my-app
π β컨ν
μ΄λ 3κ° μ μ§βλΌκ³ μ μΈνλ©΄
β μμ€ν
μ΄ μλμΌλ‘ λ§μΆ°μ€
π¦ λνμ μΈ μ»¨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
λꡬ
- Kubernetes β κ°μ₯ λ리 μ¬μ©λλ μ€μΌμ€νΈλ μ΄μ
νλ«νΌ
- Docker Swarm β Dockerμμ μ 곡νλ μ€μΌμ€νΈλ μ΄μ
κΈ°λ₯
- Apache Mesos β λκ·λͺ¨ λΆμ° μμ€ν
κ΄λ¦¬ λꡬ
π― μ΅μ’
μ 리
π₯ ν΅μ¬ ν¬μΈνΈ
- 컨ν
μ΄λκ° λ§μμ§μλ‘ μλ κ΄λ¦¬ μμ€ν
μ΄ νμνλ€
- μ€μΌμ€νΈλ μ΄μ
μ 컨ν
μ΄λλ₯Ό μλμΌλ‘ μ΄μνλ κΈ°μ μ΄λ€
- Docker λ¨λ
μΌλ‘λ νμ₯, 볡ꡬ, μλνμ νκ³κ° μλ€
π‘ ν λ¬Έμ₯ μ 리
컨ν
μ΄λ μ€μΌμ€νΈλ μ΄μ
μ βμ¬λ¬ 컨ν
μ΄λλ₯Ό μλμΌλ‘ κ΄λ¦¬νκ³ μ΄μν΄μ£Όλ μμ€ν
βμ΄λ€.