1. docker
λ컀(Docker)λ 무μμΈκ°?
λ컀λ 컨ν μ΄λ κΈ°λ° κ°μν λꡬμ΄λ©°, μ ν리μΌμ΄μ μ 컨ν μ΄λλΌλ λ¨μλ‘ μ€ννκ³ λ°°ν¬νλ κΈ°μ μ΄λ€. GoμΈμ΄λ‘ μμ±λμμΌλ©° 리λ μ€ μ»¨ν μ΄λ κΈ°λ°μΌλ‘ νλ μ€νμμ€ κ°μν νλ«νΌμ΄λ€.
μ‘°κΈ λ μμΈνκ² μ€λͺ νκΈ° μν΄μλ λͺ κ°μ§ μμμΌ νλ ν€μλκ° μλ€.
κ°μν κΈ°μ
컨ν μ΄λ
κ°μν κΈ°μ
κ°μν κΈ°μ μ νλμ μ»΄ν¨ν°λ₯Ό μ¬λ¬ κ°μ μ»΄ν¨ν°λ₯Ό μ¬μ©νλ κ² μ²λΌ μ¬μ©ν μ μκ² νλ κΈ°μ μ΄λ€. μ¦, νλμ μ»΄ν¨ν°μμ λ€μμ κ°μ νκ²½μ λ§λ€μ΄ νλ‘κ·Έλ¨μ΄λ μ΄μ 체μ λ₯Ό μ€ννλ κΈ°μ μ΄λ€.
μλ₯Ό λ€μ΄λ³΄μ.
μ§μ ν λμ μ»΄ν¨ν°κ° μλ€.
νμ κ° μκ±°λ μΉκ΅¬κ° λλ¬μμ λ μ¬λΏμ΄μ μ»΄ν¨ν°λ₯Ό μ¬μ©νκ³ μΆμ΄νλ€.
κ·Έλ¬λ μ»΄ν¨ν°λ ν λ²μ ν λͺ μ μ¬λλ§ μ¬μ©ν μ μμ΄ λΆνΈνλ€.
μ΄ λ κ°μν κΈ°μ μ΄ λ±μ₯νλ€. κ°μν κΈ°μ λ‘ νλμ μ»΄ν¨ν°μμ μ¬λ¬ κ°μ κ°μ μ»΄ν¨ν°λ₯Ό λ§λ λ€.
κ°μ μ»΄ν¨ν°λ€μ κ°μμ 곡κ°μμ μμ νκΈ° λλ¬Έμ μλ‘ κ°μνμ§ μκ³ (격리λ νκ²½), κ°μ κ°μΈ 곡κ°μμ μ»΄ν¨ν°λ₯Ό μ¬μ©νλ κ²μ²λΌ νΈλ¦¬νκ² μ¬μ©ν μ μλ€. μ΄λ€ μ¬λμ κ²μμ, μ΄λ€ μ¬λμ κ·Έλ¦Όμ΄λ μμ λ₯Ό νλ―μ΄, μ¬λ¬ λͺ μ΄ λμμ λ€μν μμ μ μνν μ μλ€.
κ°μν κΈ°μ μ μ΄λ¬ν νκ²½μ μ 곡νλ€.
μ‘°κΈ μ΄λ ΅κ²λ λ€μκ³Ό κ°λ€.
νλμ¨μ΄ 리μμ€(νλ‘μΈμ, λ©λͺ¨λ¦¬, μ μ₯μ λ±)λ₯Ό μΆμν νλ€.
λ©λͺ¨λ¦¬, νλμ¨μ΄, 컨ν μ΄λ, λ€νΈμν¬λ₯Ό κ°μν νλ€.
κ°μ λ¨Έμ (Virtual Machine, VM) VS 컨ν
μ΄λ(Container)
κ°μν κΈ°μ μλ κ°μ λ¨Έμ (Virtual Machine, VM)κ³Ό 컨ν μ΄λ(Container)λ°©μμ΄ μ‘΄μ¬νλ©°, κ°μ λ€λ₯Έ μ κ·Ό λ°©μμ κ°μ§κ³ μλ€.
κ°μ λ¨Έμ (Virtual Machine, VM)
νλμ 물리μ μΈ μ»΄ν¨ν° μμ(CPU, λ©λͺ¨λ¦¬, μ μ₯μ₯μΉ λ±)μ κ°μμ μΌλ‘ λΆν νμ¬ μ¬λ¬ κ°μ κ°μ μ»΄ν¨ν° νκ²½μ λ§λ€μ΄ λ΄λ κΈ°μ μ΄λ©°, μ΄λ₯Ό ν΅ν΄ 물리μ μΈ μ»΄ν¨ν° μμμ λμ± ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μλ€.
νΈμ€νΈ μ»΄ν¨ν°μμ νμ΄νΌλ°μ΄μ λΌλ μννΈμ¨μ΄λ₯Ό μ¬μ©νμ¬ μ¬λ¬ κ°μ λ 립μ μΈ κ°μ νκ²½μ μμ±
κ° κ°μ λ¨Έμ μ μμ ν μ΄μ 체μ μ μ ν리μΌμ΄μ μ ν¬ν¨
νΈμ€νΈ μ»΄ν¨ν°μ μμμ κ°μμ μΌλ‘ ν λΉλ°μ μ¬μ©
κ° VMμ μ체 컀λμ κ°μ§κ³ μμΌλ©°, νΈμ€νΈμλ μμ ν 격리λ νκ²½μμ μ€ν
κ°μ λ¨Έμ μ λΉκ΅μ 무κ²κ³ λ리μ§λ§, λ€μν μ΄μ 체μ λ₯Ό νΈμ€νΈνλ λ° μ μ©
νμ΄νΌλ°μ΄μ (Hypervisor)λ?
κ°μ λ¨Έμ μ μμ±νκ³ κ΅¬λνλ μννΈμ¨μ΄
OSμ μμμ ν λΉ λ° μ‘°μ¨
OSλ€μ μμ²μ λ²μνμ¬ νλμ¨μ΄μ μ λ¬
ν΅μ¬μ μλμ κ°λ€.
νΈμ€νΈμ μμμ κ°μμ μΌλ‘ ν λΉλ°μ μ¬μ©
μ체 컀λμ κ°μ§κ³ μμΌλ©°, μμ ν μ΄μ 체μ μ μ ν리μΌμ΄μ μ ν¬ν¨

컨ν
μ΄λ(Container)
νΈμ€νΈ μ΄μ 체μ 컀λμ 곡μ
μ¬λ¬ κ°μ 격리λ νλ‘μΈμ€λ₯Ό μ€ννλ κ²½λνλ λ°©μ
κ° μ»¨ν μ΄λλ μμ© νλ‘κ·Έλ¨μ μ€ννλ λ° νμν λͺ¨λ κ²μ ν¬ν¨νλ©°, νΈμ€νΈμ 리μμ€λ₯Ό 곡μ νμ¬ μ€ν
κ°μ λ¨Έμ λ³΄λ€ κ°λ³κ³ μμ μκ°μ΄ λΉ λ₯΄λ©°, μμ μλΉκ° μ μ
κ° μ»¨ν μ΄λλ νΈμ€νΈμ 컨ν μ΄λ κ°μ 격리λ₯Ό μ 곡νλ©°, νλ‘μΈμ€ μμ€μ 격리λ₯Ό ν΅ν΄ μ¬λ¬ μμ© νλ‘κ·Έλ¨μ λμΌν νΈμ€νΈμμ μμ νκ² μ€νν μ μμ
ν΅μ¬μ μλμ κ°λ€.
νΈμ€νΈμ 리μμ€ κ³΅μ
νΈμ€νΈ μ΄μ체μ μμ μ¬λ¬κ°μ 격리λ νκ²½(νλ‘μΈμ€) μμ±

μ΄λ€ κ²μ μ νν΄μΌ νλκ°?
κ°μ λ¨Έμ μ μμ ν μ΄μ 체μ νκ²½μ΄ νμν κ²½μ°μ μ μ©νλ©°, 컨ν μ΄λλ κ²½λνλ νκ²½μμ μμ© νλ‘κ·Έλ¨μ μ€ννκ³ κ΄λ¦¬νλλ° ν¨μ¨μ μ΄λ€.
μΌλ°μ μΌλ‘ μ ν리μΌμ΄μ μ λ°°ν¬νκΈ° μν΄μλ 컨ν μ΄λκ° μ νΈλλ€.
컨ν
μ΄λλ VMμ λΉν΄μ μ κ°λ³κ³ λΉ λ₯Έκ°?
1. 곡μ 컀λ
컨ν μ΄λλ νΈμ€νΈ μ΄μ 체μ μ 컀λμ 곡μ νλ€. λ°λ©΄, VMμ κ°κ°μ VMμ΄ λ 립μ μΈ μ΄μ 체μ 컀λμ κ°μ§κ³ μλ€. μ΄λ‘ μΈν΄, 컨ν μ΄λλ VMλ³΄λ€ ν¨μ¬ μ μ μ©λμ μ°¨μ§νλ©° μμ μκ°λ λ λΉ λ₯΄λ€.
2. 리μμ€ κ³΅μ
컨ν μ΄λλ νΈμ€νΈ μμ€ν μ μμμ 곡μ ν΄μ μ€νλμ§λ§, VMμ 물리μ μ μμμ ν λΉ λ°μμ μ¬μ©νκΈ° λλ¬Έμ λ λ§μ μ€λ²ν€λκ° λ°μνλ€. μ΄λ 컨ν μ΄λκ° κ°μ λ¨Έμ λ³΄λ€ λ ν¨μ¨μ μΌλ‘ μμμ νμ©ν μ μλλ‘ ν΄μ€λ€.
3. μ΄λ―Έμ§ ꡬ쑰
컨ν μ΄λ μ΄λ―Έμ§λ μμ© νλ‘κ·Έλ¨κ³Ό κ·Έμ νμν μ’ μμ±λ§ ν¬ν¨νλ λ°λ©΄, VM μ΄λ―Έμ§λ μμ ν μ΄μ 체μ μ μ ν리μΌμ΄μ μ ν¬ν¨νκ³ μλ€. λ°λΌμ 컨ν μ΄λ μ΄λ―Έμ§λ λ μκ³ κ°λ³λ€.
4. κ°μν κ³μΈ΅μ μ°¨μ΄
VMμ νμ΄νΌλ°μ΄μ λ₯Ό μ¬μ©νμ¬ νΈμ€νΈ μμ€ν κ³Ό κ° VM μ¬μ΄μ μΆμνλ₯Ό μ 곡νλ€. λ°λ©΄μ 컨ν μ΄λλ νΈμ€νΈ μ΄μ 체μ μ 컀λμ μ§μ μ¬μ©νλ―λ‘ λ μ μ μΆμν κ³μΈ΅μ΄ νμνλ€. μ΄λ λ μ μ μ€λ²ν€λμ λ λΉ λ₯Έ μ±λ₯μ κ°μ Έμ¨λ€.
μ°¨μ΄μ
κ°μν λ 벨 κ°μ λ¨Έμ : νλμ¨μ΄ λ 벨μμ κ°μνλ₯Ό μ 곡νλ©° κ° κ°μ λ¨Έμ μλ κ³ μ μ OSκ° μμ. 컨ν μ΄λ: μ΄μ체μ λ 벨μμ κ°μνλ₯Ό μ 곡νκ³ νΈμ€νΈ OSλ₯Ό 곡μ .
리μμ€ μ¬μ© κ°μ λ¨Έμ : μμ ν λ 립λ νκ²½μ μ 곡νκΈ° λλ¬Έμ λ λ§μ 리μμ€λ₯Ό μλΉν¨. 컨ν μ΄λ: κ°λ²Όμ°λ©° νμν 리μμ€λ§ μ¬μ©νμ¬ ν¨μ¬ λ ν¨μ¨μ μ.
λΆν μκ° κ°μ λ¨Έμ : OSλ₯Ό ν¬ν¨νλ―λ‘ λΆν μ λ κΈ΄ μκ°μ΄ κ±Έλ¦Ό. 컨ν μ΄λ: κ°μ λ¨Έμ μ λΉν΄ μλ±ν μλλ‘ (λͺ μ΄ λ΄) μμν μ μμ.
κ΄λ¦¬ λ° μ μ§λ³΄μ κ°μ λ¨Έμ : OSλ₯Ό ν¬ν¨νλ―λ‘ ν¨μΉ, 보μ μ λ°μ΄νΈ λ± κ΄λ¦¬κ° λ 볡μ‘ν μ μμ. 컨ν μ΄λ: μ ν리μΌμ΄μ κ³Ό κ·Έ μ’ μμ±λ§μ ν¬ν¨νλ―λ‘ κ΄λ¦¬κ° λΉκ΅μ κ°λ¨ν¨.
κ·Έλ λ€λ©΄ λ€μ λ컀λ 무μμΈκ°
컨ν μ΄λ κΈ°λ° κ°μν λꡬμ΄λ©°, μ ν리μΌμ΄μ μ 컨ν μ΄λλΌλ λ¨μλ‘ κ²©λ¦¬νμ¬ μ€ννκ³ λ°°ν¬νλ κΈ°μ μ΄λ€. λν, λ€μν μ΄μ체μ μμ μ¬μ©ν μ μμΌλ©°, 컨ν μ΄λνλ μ ν리μΌμ΄μ μ μμ½κ² λΉλ, λ°°ν¬, κ΄λ¦¬ν μ μλ λ€μν κΈ°λ₯μ μ 곡νλ€.
λ컀μ μ₯μ
νμ€νλ νκ²½
λ컀 컨ν μ΄λλ μ ν리μΌμ΄μ μ νμν λͺ¨λ μ’ μμ±μ ν¬ν¨νμ¬, κ°λ°/νλ‘λμ νκ²½μ΄ λμΌν΄μ§λ€.
μ΄λ€ μ»΄ν¨ν°μμλ λμΌν νκ²½μ μ 곡νκΈ° λλ¬Έμ, νκ²½μ€μ μ μ΄λ €μμ΄ μλ€.
μ΄μμ±/μ μ°μ±
λ컀 컨ν μ΄λλ μ΄λμμλ μ€νλ μ μκΈ° λλ¬Έμ, λ‘컬 μ»΄ν¨ν°μμ 컨ν μ΄λ μμμ κ°λ°νκ³ , λ컀 μ΄λ―Έμ§λ‘ ν¨ν€μ§νμ¬ ν΄λΌμ°λ λλ μ¨νλ λ―Έμ€ μλ² νΉμ λ€λ₯Έ νκ²½μμ μ€νμ΄ κ°λ₯νλ€.
μμ ν¨μ¨μ±
λ컀 컨ν μ΄λλ κ°μ λ¨Έμ λ³΄λ€ κ°λ²Όμ°λ©°, μ¬λ¬ κ°μ 컨ν μ΄λλ₯Ό νλμ νΈμ€νΈμμ μ€νν μ μλ€.
μ΄λ λ λ§μ μ ν리μΌμ΄μ μ λμΌν νλμ¨μ΄ 리μμ€λ‘ μ€νν μ μκ³ , μμμ ν¨μ¨μ±μ λμΌ μ μλ€.
λΉ λ₯Έ λ°°ν¬ λ° νμ₯μ±
λ컀λ μ ν리μΌμ΄μ μ 컨ν μ΄λλ‘ ν¨ν€μ§νκ³ λ°°ν¬νκ³ νμ₯νλ κ²μ΄ κ°λ¨νλ€.
μλ‘μ΄ λ²μ μ μ ν리μΌμ΄μ μ λΉ λ₯΄κ² λ°°ν¬νκ³ νμ₯ κ°λ₯νμ¬, νΈλν½ μ¦κ°μλ λμν μ μλ€.
λ컀 μν€ν
μ³(Docker Architecture)
Docker Client
Docker Host
Docker Registry
Docker Client
λ컀λ₯Ό μ¬μ©νκΈ° μν 컀맨λ λΌμΈ λꡬ
λ컀 ν΄λΌμ΄μΈνΈλ₯Ό ν΅ν΄ λ컀 νΈμ€νΈμ μνΈμμ©νκ³ , λ컀 μ΄λ―Έμ§ λ° μ»¨ν μ΄λλ₯Ό κ΄λ¦¬(μμ/μ€μ§/μμ λ±)
docker λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ©΄ Docker daemonμΌλ‘ 보λ΄μ΄ μ€ν
Docker Host(Docker Server)
λ컀 컨ν μ΄λλ₯Ό μ€ννλλ° μ¬μ©λλ κ°μ λ¨Έμ (λ컀 μμ§μ΄ μ€μΉλμ΄ μλ κ°μ λ¨Έμ )
λ컀 μ΄λ―Έμ§ μ μ₯, 컨ν μ΄λ μ€ν, λ컀 ν΄λΌμ΄μΈνΈμ ν΅μ
λ컀 λ°λͺ¬μ μ€ννμ¬ μ»¨ν μ΄λλ₯Ό μμ±/μμ/μ€μ§ λ° κ΄λ¦¬λ₯Ό μννλ μν μν
νΈμ€νΈ μ΄μ 체μ μ 리μμ€λ₯Ό μ¬μ©νμ¬ μ»¨ν μ΄λλ₯Ό μ€ννκ³ κ΄λ¦¬
Docker Demon
λ컀 μμ§μ ν΅μ¬ κ΅¬μ± μμ
λ컀 νΈμ€νΈμμ μ€νλλ©°, λ컀 ν΄λΌμ΄μΈνΈμ μνΈ μμ©νκ³ , λ컀 μ΄λ―Έμ§μ 컨ν μ΄λλ₯Ό κ΄λ¦¬
μΈλΆμμ μ΄λ―Έμ§λ₯Ό λ€μ΄λ‘λνκ³ λΉλνλ μμ μ μν
Docker Registry
λ컀 μ΄λ―Έμ§λ₯Ό μ μ₯νλ μ€μ μ μ₯μ
λ컀 ν΄λΌμ΄μΈνΈλ λ컀 λ μ§μ€νΈλ¦¬μμ μ΄λ―Έμ§λ₯Ό κ²μ/νΈμ/ν ν μ μμ
λ컀 νΈμ€νΈμμ μ€νλλ©°, λ컀 ν΄λΌμ΄μΈνΈμ μνΈ μμ©νκ³ , λ컀 μ΄λ―Έμ§μ 컨ν μ΄λλ₯Ό κ΄λ¦¬ν©λλ€.
Docker file
λ컀 μ΄λ―Έμ§λ₯Ό λΉλνκΈ° μν ν μ€νΈ νμΌ
λ컀 μ΄λ―Έμ§λ₯Ό ꡬμ±νλ λͺ λ Ήμ΄μ μ€μ ν¬ν¨
λ컀 νμΌμ μ¬μ©νμ¬ λ°λ³΅μ μΈ μ΄λ―Έμ§ λΉλ μλν
Docker image
λ컀 컨ν μ΄λλ₯Ό μ€ννλλ° νμν νμΌκ³Ό μ€μ μ ν¬ν¨νλ κ°λ³κ³ λ 립μ μΈ μ€ν κ°λ₯ ν¨ν€μ§
λ컀 λ μ§μ€νΈλ¦¬μμ κ°μ Έμ¬ μ μκ³ , λ컀 νμΌμ μ¬μ©νμ¬ λΉλν μλ μμ
Docker container
λ컀 μ΄λ―Έμ§μ μΈμ€ν΄μ€
격리λ νκ²½μμ μ€νλ¨
νΈμ€νΈ μμμ 곡μ νλ©°, νΈμ€νΈμ 격리λ νλ‘μΈμ€
Last updated