ν°μ€ν 리 λ·°
λ컀μ λν΄ μμ보기 μ μ κΈ°μ‘΄μ LXC(Linux Container)μ λ¬λ¦¬ λ§μ μ¬λλ€μ΄ λ컀λ₯Ό μ¬μ©νκ² λκ³ , μ§κΈλ 컨ν μ΄λ κΈ°λ°μ μμ€ν ꡬμΆμ μ μ©λλμ§ μμ보기 μν΄ λ°°κ²½μ§μμ μμλ³΄κ³ μ νλ€.
Container
컨ν μ΄λλ μ΄μ체μ μμ€μ κ°μν(Operating System level virtualization)μ ν΅ν΄ κ° μ»¨ν μ΄λ λ³λ‘ λ 립μ μΌλ‘ μ€νλ μ μλ νκ²½μ μ 곡νλ€. λμ»€κ° λ±μ₯νκΈ° μ μλ LXC(Linux Container)κ° μ λͺ νμλ€. μ΄κΈ°μ λ컀λ LXCλ₯Ό λ°νμμΌλ‘ μ¬μ©νλ λ°©μμ μ±ννμλ€. μκ°μ΄ μ§λ¨μ λ°λΌ, μ κ·Έλ μ΄λ νλ©΄μ LXC μμ΄λ λμν μ μλ λ²μ μ μ 곡νμλ€.
VM Wareμ Virtual Boxλ 컨ν μ΄λμ λ¬λ¦¬ Hypervisorλ₯Ό ν΅ν΄ Gest OSλ₯Ό μ 곡νλ νλ€. μ΄λ νΈμ€νΈ OSμ λ€λ₯Έ OSλ₯Ό μ¬μ©νλ νκ²½μμλ μ ν©νμ§λ§, μ΄μΈμλ μλμ μΌλ‘ 컨ν μ΄λλ³΄λ€ μ€λ²ν€λκ° ν¬λ€λ λ¨μ μ κ°μ§κ³ μλ€. μλμ μΌλ‘ 컨ν μ΄λλ₯Ό μ€ν - μ’ λ£νλ μ€λ²ν€λκ° μλΉν μ μ 컨ν μ΄λλ Life timeμ΄ μ§§μ νλ‘κ·Έλ¨μ΄λ ν μ€νΈ νκ²½ ꡬμΆμ μν΄ λ³΄λ€ μ ν©νλ€.
System Resource Isolation
λ컀 컨ν μ΄λμ LXCλ μ΄λ€ λ°©μμΌλ‘ 컨ν μ΄λ λ³λ‘ λ 립μ μ 곡κ°κ³Ό μμ€ν μμμ ν λΉνλμ§λ₯Ό μ΄ν΄νλ κ²μ μ€μνλ€. νμ¬ λ컀 컨ν μ΄λλ 리λ μ€ μ»€λμ 2κ°μ§ κΈ°λ₯μ νμ©νμ¬ μ»¨ν μ΄λ λ³ λΆλ¦¬λ μμ 곡κ°μ μ 곡νκ³ μλ€.
1. Cgroups
컨ν
μ΄λ λ³λ‘ μμμ μ μ νκ² ν λΉνκΈ° μν΄ Cgroups
λ₯Ό μ΄μ©νλ€. μ΄λ Control Cgroupsμ μ€μλ§λ‘, CPU, Memory, I/O, Network λ± μμ€ν
μμμ μ§μ ν Cgroupμ ν λΉ ν μ μλ€.
2. Namespaces
κ° μ»¨ν μ΄λμ λ 립μ μΈ κ³΅κ°μ μ 곡νκΈ° μν΄μλ λ‘컬 νΈμ€νΈ λΏλ§ μλλΌ, κ° μ»¨ν μ΄λ λ³λ‘ λ³λμ νκ²½μ μ 곡ν¨μΌλ‘μ¨ μΆ©λμ΄ λ°μνμ§ μμμΌ νλ€.
리λ
μ€ μ»€λμμλ namespaces
λ₯Ό ν΅ν΄ μ΄λ₯Ό κ°λ₯νκ² νλ€.
- mnt : λ 립μ μΌλ‘ νμΌ μμ€ν μ ꡬμ±ν μ μλλ‘ ν¨
- pid : λ 립μ μΈ νλ‘μΈμ€ λ²νΈκ° λΆμ¬λλλ‘ ν¨
- net : ν¬νΈ, λ°μΈλ©μ λ 립μ μΌλ‘ μ¬μ©νλλ‘ ν¨
- ipc : νλ‘μΈμ€μ λ 립μ μΈ ν΅λ‘λ₯Ό λΆμ¬ν¨
- uts : λ³λμ hostnameμ λΆμ¬ν¨
- uid : λ³λμ μ¬μ©μ κ΄λ¦¬λ₯Ό κ°λ₯νλλ‘ ν¨
Docker file
λ컀μ 컨ν
μ΄λλ LXCμ λ¬λ¦¬ κ° μ»¨ν
μ΄λμ μ 보λ₯Ό Docker file
λ‘ κ΄λ¦¬ ν μ μλ μ₯μ μ΄ μλ€. λν 컨ν
μ΄λμ μ€ν νμΌ λΏ μλλΌ, μ€ν νκ²½λ ν¨κ» λ°°ν¬κ° κ°λ₯νλ€. μ΄λ νΈμ€νΈμ μ€ν νκ²½μ λ°λ₯Έ νλ‘κ·Έλ¨ λμ μ¬λΆμ λν λ¬Έμ λ₯Ό μ€μ¬ μ€ μ μμΌλ©°, λΉ λ₯΄κ² ꡬνμ΄ κ°λ₯νλ€λ μ₯μ μ λλ°νλ€. λ컀 컨ν
μ΄λμ κΈ°λ°μ΄ λλ μ΄λ―Έμ§λ₯Ό λΉλλ₯Ό μν΄ Docker fileμ μ°Έμ‘°νμ¬ μ΄λ―Έμ§λ₯Ό λΉλνλ©°, κ°λ¨ν μμλ λ€μκ³Ό κ°λ€.
FROM ubuntu:16.04
COPY hello /usr/local/bin
RUN chmod +x /usr/local/bin/hello
CMD ["hello"]
-
FROM : λ컀 μ΄λ―Έμ§λ₯Ό μ§μ νλ€.
-
COPY : νμ¬ λ‘컬 νΈμ€νΈμμ 볡μ¬νκ³ μ νλ νμΌμ 볡μ¬νλ€.
-
RUN : 컨ν μ΄λμ λ΄λΆμ νμν λμλ€μ μν ν μ μλ€.
-
CMD : 컨ν μ΄λ μ€ν μ μ€νν λͺ λ Ήμ μ§μ ν μ μλ€.
Moby
2017λ λ컀 컨νΌλ°μ€μμ Moby νλ‘μ νΈμ λν λ°νκ° μμλ€. Moby νλ‘μ νΈκ° λ±μ₯νλ©΄μ λ컀 CE/EEμ κ΄κ³λ₯Ό λ€μκ³Ό κ°μ΄ μ μνμλ€.
μ΄λ¦ | μν |
---|---|
Mobby | μ»΄ν¬λνΈ |
Docker CE | Moby + μ»΄ν¬λνΈλ₯Ό μ‘°ν©ν λ¬΄λ£ λ²μ |
Docker EE | μμ© λ²μ |
'π΅οΈββοΈ μ°λ¬Ό λ°μ κ°κ΅¬λ¦¬ > Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Docker: Windows, Macμμ μ΄λ€ λ°©μμΌλ‘ μ€ννλκ°? (0) | 2022.06.29 |
---|---|
Docker: Manage Container (3) | 2020.07.13 |
Docker: Install & Run (0) | 2020.07.02 |