
π³ λ컀λ 컨ν μ΄λ κΈ°μ μ κΈ°λ°μΌλ‘ μ΄ν리μΌμ΄μ μ ν¨ν€μ§ν μ μλ λꡬμ΄λ€.
μλ² κ°λ° μ κ°λ° νκ²½μ΄ λ°λλ©΄ μ»΄ν¨ν° μΈν μ΄λ νλ‘κ·Έλ¨ λ±μ μ²μλΆν° λ€μ μ€μ ν΄μΌνλ μν©μ΄ λ°μν μ μλ€..
λ΄ μ»΄ν¨ν°λΏλ§ μλλΌ λ€λ₯Έ μ»΄ν¨ν°μμλ λμΌν νκ²½μΌλ‘ λμν μ μλλ‘ μΈν ν΄μΌνλλ° μ΄λ₯Ό νΈλ¦¬νκ² λμμ£Όλ κ²μ΄ λ컀λ€.
μ΄ν리μΌμ΄μ μ΄ κ΅¬λνλλ° νμν System tools, Dependencies, νκ²½λ³μ λ± λ€μν 리μμ€λ€μ λ컀 컨ν μ΄λμ λ΄μ μ μ₯ν ν, λ€λ₯Έ μλ²μ ν΄λΉ λ컀 컨ν μ΄λλ₯Ό λ€μ΄λ°μ μμ μ μΌλ‘ ꡬλλ μ μλλ‘ νλ€.
μ΄ν리μΌμ΄μ μ ꡬλνλλ° νμν κ²λ€μ μ€μ νκ³ μ€λΉν΄μΌνλ λ²κ±°λ‘μμ μ€μ¬μ£Όλ μ μ©ν ν΄μ΄λΌ μκ°νλ©΄ λλ€ !
π‘ 컨ν μ΄λλ ?
VMμμ κ²½λνλ κ²μ΄ 컨ν μ΄λλ€. ꡬλνλ €λ μ΄ν리μΌμ΄μ μ μ€νν μ μλ νκ²½κΉμ§ κ°μΈμ μ΄λμλ μ½κ² μ€νν μ μλλ‘ ν΄μ£Όλ κΈ°μ μ΄λ€. μ΄μ체μ λ₯Ό ν¬ν¨ν VMκ³Ό λ¬λ¦¬ 컨ν μ΄λλ μ΄μ체μ λ₯Ό ν¬ν¨νμ§ μκ³ μ»¨ν μ΄λ μμ§μ΄ μ€μΉλ Host OSλ₯Ό 곡μ νλ€. (컨ν μ΄λ μμ§ = Docker)
π λ컀 ꡬμ±μμ

Docker Fileκ³Ό Docker Imageλ₯Ό μ΄μ©ν΄ 컨ν μ΄λλ₯Ό ꡬλνλ€.
λΉμ νμλ©΄...
νλ‘κ·Έλ¨μ΄ νμν λ app storeμμ μ°Ύλλ€ = νμν swλ₯Ό docker hubμμ μ°Ύλλ€.
νλ‘κ·Έλ¨μ app storeμμ λ€μ΄λ°μ μ μ₯νλ κ²μ΄λ€ = imageλ docker hubμμ μ°Ύμ μ μ₯νλ€.
νλ‘κ·Έλ¨μ μ€ννλ©΄ νλ‘μΈμ€κ° λμνλ€ = imageλ₯Ό μ€νν΄ μ»¨ν μ΄λκ° μμ±λλ€.
docker hubμμ image λ€μ΄ λ°κΈ° = pull
imageλ₯Ό μ€νμν€κΈ° = run
λ컀 νμΌ
컨ν μ΄λλ₯Ό μ΄λ»κ² λ§λ€μ΄μΌνλμ§ μ€λͺ ν΄μ£Όλ λ¬Έμλ‘ λ컀 μ΄λ―Έμ§λ₯Ό μλμΌλ‘ λΉλνκΈ° μν μ€ν¬λ¦½νΈ νμΌμ΄λ€.
κΈ°λ³Έ μ΄λ―Έμ§ μ€μ , μ€νν λͺ λ Ήμ΄, μΆκ°ν νμΌ λ° λλ ν 리, νκ²½ λ³μ μ€μ λ± μ΄λ―Έμ§ μμ±μ νμν μ§μμ΄ ν¬ν¨νμ¬ λ°°ν¬ κ³Όμ μ νμ€ννκ³ μλνν μ μλ€.
- μ΄ν리μΌμ΄μ μ ꡬλνλλ° νμν νμΌ
- μ΄λ€ νλ μμν¬λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉν΄μΌνλμ§ μΈλΆ dependencies λͺ μ
- νμν νκ²½λ³μ μ€μ
λ컀 νλΈ / λ μ§μ€νΈλ¦¬
- λ컀 νλΈ : λ컀 μ΄λ―Έμ§λ₯Ό μ°Ύκ³ κ³΅μ , κ΄λ¦¬ν μ μλ 곡μμ μΈ ν΄λΌμ°λ κΈ°λ° μλΉμ€ λ° μ μ₯μ
- λ컀 λ μ§μ€νΈλ¦¬ : λ컀 μ΄λ―Έμ§λ₯Ό μ μ₯νκ³ λ°°ν¬νκΈ° μν μλ² μΈ‘ μμ©νλ‘κ·Έλ¨μΌλ‘ μ¬μ©μκ° μμ μ μλ²μ μ§μ μ€μΉνμ¬ κ°μΈ λλ μ‘°μ§ λ΄λΆμμ μ¬μ©ν μ μλ νλΌμ΄λΉ μ μ₯μλ₯Ό λ§λ€ μ μκ² νλ€. π λΉκ³΅κ° νλ‘μ νΈλ λ΄λΆμ μΌλ‘ μ¬μ©λλ μ΄λ―Έμ§λ₯Ό μμ νκ² κ΄λ¦¬νκ³ μΆμ μ‘°μ§μ μ ν©ν μ루μ
λ컀 μ΄λ―Έμ§

λ컀 μ΄λ―Έμ§λ 컨ν μ΄λλ₯Ό μ€ννλ λ° νμν νμΌ μμ€ν κ³Ό μ€ν νκ²½μ ν¬ν¨νκ³ μλ€.
μμ±ν λ컀 νμΌμ μ΄μ©ν΄μ μ΄λ―Έμ§λ₯Ό build νλ€.
μ€νλκ³ μλ μ΄ν리μΌμ΄μ μνλ₯Ό snapshot ν΄μ imageλ‘ λ§λ€μ΄λλ κ²μΌλ‘ μκ°νλ©΄ λλ€.
π 컨ν μ΄λλ₯Ό μ€νν μ μλ νμΌ = Docker Image
π‘ pullκ³Ό buildμ μ°¨μ΄λ ?
pull
: λ컀 μ΄λ―Έμ§λ₯Ό λ컀 νλΈμ κ°μ registryμμ λ΄λ €λ°λλ€. μ΄λ―Έμ§λ₯Ό λ‘컬 μμ€ν μ λ€μ΄λ‘λνμ¬ μ μ₯νλ κ²μΌ λΏ μμ νκ±°λ 컀μ€ν°λ§μ΄μ§μ λΆκ°νλ€.
docker pull μ΄λ―Έμ§μ΄λ¦:νκ·Έ
build
: λ컀 μ΄λ―Έμ§λ₯Ό λ‘컬 μμ€ν μμ μλ‘ λΉλνλ€. Dockerfileμ΄λΌλ μ€μ νμΌμ μ¬μ©ν΄ μ΄λ―Έμ§λ₯Ό μ μνκ³ μ¬μ©μ μ§μ μ΄λ―Έμ§λ₯Ό λ§λ λ€.
docker build -t μ΄λ―Έμ§μ΄λ¦:νκ·Έ κ²½λ‘
π pull
μ μ΄λ―Έ ꡬμ±λ μ΄λ―Έμ§λ₯Ό λ€μ΄λ°μ μ¬μ© + μμ λ° μ»€μ€ν°λ§μ΄μ§ X
build
λ μ¬μ©μ μ§μ μ΄λ―Έμ§ λΉλ λ° μ»€μ€ν°λ§μ΄μ¦ + Dockerfile ν΅ν΄ μ΄λ―Έμ§ μ μ
λ컀 컨ν μ΄λ

λ 립λ κ°λ°νκ²½μΌλ‘, build λ μ΄λ―Έμ§κ° μ€νλ μνμ΄λ©° λμΌν μ΄λ―Έμ§λ₯Ό μ¬μ©νμ¬ μ¬λ¬ 컨ν μ΄λλ₯Ό λμμ μ€νν μ μλ€.
격리λ νκ²½μμ μ΄ν리μΌμ΄μ κ³Ό κ·Έ μμ‘΄μ±μ μΊ‘μννλ©° νΈμ€νΈμ λ 립μ μΈ νμΌμμ€ν , νλ‘μΈμ€λ₯Ό κ°μ§κ³ μλ€.
κ·Έλ¬λ―λ‘ νλμ μ΄ν리μΌμ΄μ μ μ€λ₯κ° λλ λ€λ₯Έ μ΄ν리μΌμ΄μ μ μν₯μ μ£Όμ§ μλλ€. (νλμ 컨ν μ΄λκ° μ¬λ¬ μμ μ νλ κ² μ§μ !)
Host OSμ 컀λμ 곡μ νλ―λ‘ μ»¨ν μ΄λμ μνκ° λ³νκ±°λ μμ λλλΌλ μ΄λ―Έμ§λ λ³νμ§ μκ³ κ·Έλλ‘ μ‘΄μ¬νλ€.
πΉ 컨ν μ΄λκ° νμν μ΄μ
- 60-70λ λμλ μ»΄ν¨ν°κ° ν μ΄ν리μΌμ΄μ μ€νμ λ΄λΉνλ κ²μ΄ μΌλ°μ β νλ‘μΈμ€(OSμμ μ€ν μ€μΈ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€) μ€λ κ±Έλ¦Ό
- 컀λμ HWμ SW κ°μ ν΅μ μ κ΄λ¦¬νλ©° μμ€ν μμκ³Ό λ€μν μ»΄ν¨ν° μμ μ ν¨μ¨μ μΌλ‘ μ‘°μ νκ³ μ μ΄ π νλ‘μΈμ€λ 컀λμ μν΄ μμ±λκ³ κ΄λ¦¬λ¨
- μννΈμ¨μ΄ μλΉμ€ μ₯μ λ°μ β μ»΄ν¨ν
μμμ μ΅λν 곡μ ν΄μ μ¬μ©ν΄ λΉ λ₯΄κ² λ§λ€κΈ° μν΄ μμ λΆλ¦¬ν΄μ μ¬μ©
- VM μ¬μ© π Guest Operating System ν λΉν΄μ 격리
- 컨ν μ΄λ μ¬μ© π Host Operating Systemμμ 격리 (μ΄μ체μ μμ€μμ 격리) = Host μ΄μ체μ 컀λ 곡μ β ν¨μ¬ κ°λ²Όμμ§

πΉ 컀λ
- User Mode : μμ© νλ‘κ·Έλ¨μ΄ μ€νλκ³ μ¬μ©μκ° μμ€ν μ μ κ·Όνλλ° μ¬μ©λ¨ π νλ‘μΈμ€κ° μ νλ μμ€ν μμμλ§ μ κ·Ό κ°λ₯. μ΄μ체μ μ μλΉμ€λ₯Ό μμ²νκΈ° μν΄ System callμ μ¬μ©νμ¬ μ»€λ λͺ¨λλ‘ μ ν
- Kernel Mode : μ΄μ체μ κ° μ 체 μμ€ν μμκ³Ό νλμ¨μ΄μ μ κ·Ό κ°λ₯

λ컀 μμ§

컨ν μ΄λλ₯Ό μμ±νκ³ κ΄λ¦¬νλ κΈ°λ₯μ μ 곡νλ ν΄λΌμ΄μΈνΈ-μλ² ννμ μ΄ν리μΌμ΄μ μ΄λ€.
μΈ κ°μ§ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ Έ μλ€.
- λ컀 λ°λͺ¬ : 컨ν μ΄λ κ΄λ¦¬λ₯Ό μν λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ‘ μ΄λ―Έμ§ μμ±, 컨ν μ΄λ μ€ν, λ€νΈμν¬ μ€μ λ±μ λ컀 μ£Όμ κΈ°λ₯μ μ€ννκ³ κ΄λ¦¬νλ€. 컨ν μ΄λμ μμ±, μ€ν, μ€μ§μ κ°μ μλͺ μ£ΌκΈ°λ₯Ό κ΄λ¦¬νλ©° μ΄λ―Έμ§λ₯Ό λΉλνκ³ μ μ₯μμμ μ΄λ―Έμ§λ₯Ό κ°μ Έμ€λ μν μ μννλ€.
- λ컀 CLI ν΄λΌμ΄μΈνΈ : μ¬μ©μκ° μ»€λ§¨λ λΌμΈμ ν΅ν΄ λ컀 μμ§κ³Ό μνΈμμ©ν μ μκ² νλ μΈν°νμ΄μ€
- REST API : λ컀 λ°λͺ¬κ³Ό ν΅μ νλ μΈν°νμ΄μ€
πΉ λμ λ°©μ

- μ΄λ―Έμ§ λ€μ΄λ‘λ λλ λΉλ : 컨ν μ΄λλ₯Ό μ€ννκΈ° μ μ λ컀 μμ§μ ν΄λΉ μ΄ν리μΌμ΄μ μ μ€ννλ λ° νμν λͺ¨λ νμΌκ³Ό μ€μ μ΄ ν¬ν¨λ λ컀 μ΄λ―Έμ§κ° νμν¨ π λ컀 νλΈλ λ€λ₯Έ μ΄λ―Έμ§ μ μ₯μμμ μ΄λ―Έμ§λ₯Ό λ€μ΄λ‘λνκ±°λ Dockerfileμ μ μν΄ μλ‘μ΄ μ΄λ―Έμ§ λΉλ
- 컨ν μ΄λ μμ± : μ΄λ―Έμ§ μ€λΉλλ©΄ μ¬μ©μκ° λ컀 λ°λͺ¬μκ² μ»¨ν μ΄λ μμ± μμ² π λ€νΈμν¬ μ€μ μ΄λ λ³Όλ₯¨ λ§μ΄νΈμ κ°μ μΆκ°μ μΈ μ΅μ μ§μ κ°λ₯
- 컨ν μ΄λ μ€ν : λ컀 λ°λͺ¬μ΄ 컨ν μ΄λ λ΄λΆμμ μ μλ μ΄ν리μΌμ΄μ μ μ€ν π μ΄ κ³Όμ μμ 컨ν μ΄λλ λ 립λ νμΌ μμ€ν , λ€νΈμν¬ μΈν°νμ΄μ€, νλ‘μΈμ€ID κ³΅κ° λ±μ κ°κ² λλ©° μ΄λ 컨ν μ΄λλ₯Ό νΈμ€νΈ μμ€ν κ³Ό 격리λ νκ²½μμ μ€νλκ² ν¨
- 컨ν μ΄λ κ΄λ¦¬ : CLI ν΅ν΄ μ€ν μ€μΈ 컨ν μ΄λ μ‘°ν, λ‘κ·Έ νμΈ, μ€μ§ λλ μμ κ°λ₯
- 리μμ€ κ΄λ¦¬ : Cgroupsμ λ€μμ€νμ΄μ€μ κ°μ 리λ μ€μ ν΅μ¬ κΈ°λ₯ μ¬μ©νμ¬ μ»¨ν μ΄λμ 리μμ€ μ¬μ©λ μ ννκ³ μ»¨ν μ΄λ κ°μ 격리 μ μ§
λ컀 λ³Όλ₯¨
컨ν μ΄λμ λλ ν 리μ μ΄μ체μ (Host)μ λλ ν 리λ₯Ό μ°κ²°νλ λ°©μμ΄λ€.
λ§μ½ dockerμ 컨ν μ΄λλ₯Ό μμ νλ©΄ 컨ν μ΄λ λ΄λΆμ λ°μ΄ν° λν μμ λλ€.
컨ν μ΄λκ° μμ λμ΄λ λ°μ΄ν°λ₯Ό μꡬμ μΌλ‘ μ μ₯νλ €λ©΄ volumeμ μ¬μ©νλ©΄ λλ€.

컨ν μ΄λλ₯Ό μ€νμν¬ λ λ³Όλ₯¨ μ€μ μ νλ©΄λλ€.
Volumesμμ Host pathμ Container pathμ μ λ ₯ν κ²μ λλ ν 리λ‘,
Host pathμ container path λλ ν 리λ₯Ό μ°κ²°νκ² λ€λ μλ―Έμ΄λ€.
μ΄λ―Έμ§ λ°°ν¬

1. λ‘컬μ Dockerλ₯Ό μ€μΉνκ³ Dockerfileμ λ§λ λ€.
2. Dockerfileμ buildν΄μ Imageλ‘ λ§λ λ€.
3. Imageλ₯Ό Container Registryμ pushνλ€.
4. λ€λ₯Έ μλ²μ Dockerλ₯Ό μ€μΉνκ³ Container Registryμ μλ Imageλ₯Ό pullνλ€.
5. Dockerμμ Imageλ₯Ό run νλ€.
μ°Έκ³ μλ£
https://www.linkedin.com/pulse/kernel-mode-v-user-pallab-sarma/
'DevOps > π³ Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[π³ Docker] λ컀 λͺ λ Ήμ΄ μ 리 - Dockerfile (0) | 2024.04.16 |
---|

π³ λ컀λ 컨ν μ΄λ κΈ°μ μ κΈ°λ°μΌλ‘ μ΄ν리μΌμ΄μ μ ν¨ν€μ§ν μ μλ λꡬμ΄λ€.
μλ² κ°λ° μ κ°λ° νκ²½μ΄ λ°λλ©΄ μ»΄ν¨ν° μΈν μ΄λ νλ‘κ·Έλ¨ λ±μ μ²μλΆν° λ€μ μ€μ ν΄μΌνλ μν©μ΄ λ°μν μ μλ€..
λ΄ μ»΄ν¨ν°λΏλ§ μλλΌ λ€λ₯Έ μ»΄ν¨ν°μμλ λμΌν νκ²½μΌλ‘ λμν μ μλλ‘ μΈν ν΄μΌνλλ° μ΄λ₯Ό νΈλ¦¬νκ² λμμ£Όλ κ²μ΄ λ컀λ€.
μ΄ν리μΌμ΄μ μ΄ κ΅¬λνλλ° νμν System tools, Dependencies, νκ²½λ³μ λ± λ€μν 리μμ€λ€μ λ컀 컨ν μ΄λμ λ΄μ μ μ₯ν ν, λ€λ₯Έ μλ²μ ν΄λΉ λ컀 컨ν μ΄λλ₯Ό λ€μ΄λ°μ μμ μ μΌλ‘ ꡬλλ μ μλλ‘ νλ€.
μ΄ν리μΌμ΄μ μ ꡬλνλλ° νμν κ²λ€μ μ€μ νκ³ μ€λΉν΄μΌνλ λ²κ±°λ‘μμ μ€μ¬μ£Όλ μ μ©ν ν΄μ΄λΌ μκ°νλ©΄ λλ€ !
π‘ 컨ν μ΄λλ ?
VMμμ κ²½λνλ κ²μ΄ 컨ν μ΄λλ€. ꡬλνλ €λ μ΄ν리μΌμ΄μ μ μ€νν μ μλ νκ²½κΉμ§ κ°μΈμ μ΄λμλ μ½κ² μ€νν μ μλλ‘ ν΄μ£Όλ κΈ°μ μ΄λ€. μ΄μ체μ λ₯Ό ν¬ν¨ν VMκ³Ό λ¬λ¦¬ 컨ν μ΄λλ μ΄μ체μ λ₯Ό ν¬ν¨νμ§ μκ³ μ»¨ν μ΄λ μμ§μ΄ μ€μΉλ Host OSλ₯Ό 곡μ νλ€. (컨ν μ΄λ μμ§ = Docker)
π λ컀 ꡬμ±μμ

Docker Fileκ³Ό Docker Imageλ₯Ό μ΄μ©ν΄ 컨ν μ΄λλ₯Ό ꡬλνλ€.
λΉμ νμλ©΄...
νλ‘κ·Έλ¨μ΄ νμν λ app storeμμ μ°Ύλλ€ = νμν swλ₯Ό docker hubμμ μ°Ύλλ€.
νλ‘κ·Έλ¨μ app storeμμ λ€μ΄λ°μ μ μ₯νλ κ²μ΄λ€ = imageλ docker hubμμ μ°Ύμ μ μ₯νλ€.
νλ‘κ·Έλ¨μ μ€ννλ©΄ νλ‘μΈμ€κ° λμνλ€ = imageλ₯Ό μ€νν΄ μ»¨ν μ΄λκ° μμ±λλ€.
docker hubμμ image λ€μ΄ λ°κΈ° = pull
imageλ₯Ό μ€νμν€κΈ° = run
λ컀 νμΌ
컨ν μ΄λλ₯Ό μ΄λ»κ² λ§λ€μ΄μΌνλμ§ μ€λͺ ν΄μ£Όλ λ¬Έμλ‘ λ컀 μ΄λ―Έμ§λ₯Ό μλμΌλ‘ λΉλνκΈ° μν μ€ν¬λ¦½νΈ νμΌμ΄λ€.
κΈ°λ³Έ μ΄λ―Έμ§ μ€μ , μ€νν λͺ λ Ήμ΄, μΆκ°ν νμΌ λ° λλ ν 리, νκ²½ λ³μ μ€μ λ± μ΄λ―Έμ§ μμ±μ νμν μ§μμ΄ ν¬ν¨νμ¬ λ°°ν¬ κ³Όμ μ νμ€ννκ³ μλνν μ μλ€.
- μ΄ν리μΌμ΄μ μ ꡬλνλλ° νμν νμΌ
- μ΄λ€ νλ μμν¬λ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉν΄μΌνλμ§ μΈλΆ dependencies λͺ μ
- νμν νκ²½λ³μ μ€μ
λ컀 νλΈ / λ μ§μ€νΈλ¦¬
- λ컀 νλΈ : λ컀 μ΄λ―Έμ§λ₯Ό μ°Ύκ³ κ³΅μ , κ΄λ¦¬ν μ μλ 곡μμ μΈ ν΄λΌμ°λ κΈ°λ° μλΉμ€ λ° μ μ₯μ
- λ컀 λ μ§μ€νΈλ¦¬ : λ컀 μ΄λ―Έμ§λ₯Ό μ μ₯νκ³ λ°°ν¬νκΈ° μν μλ² μΈ‘ μμ©νλ‘κ·Έλ¨μΌλ‘ μ¬μ©μκ° μμ μ μλ²μ μ§μ μ€μΉνμ¬ κ°μΈ λλ μ‘°μ§ λ΄λΆμμ μ¬μ©ν μ μλ νλΌμ΄λΉ μ μ₯μλ₯Ό λ§λ€ μ μκ² νλ€. π λΉκ³΅κ° νλ‘μ νΈλ λ΄λΆμ μΌλ‘ μ¬μ©λλ μ΄λ―Έμ§λ₯Ό μμ νκ² κ΄λ¦¬νκ³ μΆμ μ‘°μ§μ μ ν©ν μ루μ
λ컀 μ΄λ―Έμ§

λ컀 μ΄λ―Έμ§λ 컨ν μ΄λλ₯Ό μ€ννλ λ° νμν νμΌ μμ€ν κ³Ό μ€ν νκ²½μ ν¬ν¨νκ³ μλ€.
μμ±ν λ컀 νμΌμ μ΄μ©ν΄μ μ΄λ―Έμ§λ₯Ό build νλ€.
μ€νλκ³ μλ μ΄ν리μΌμ΄μ μνλ₯Ό snapshot ν΄μ imageλ‘ λ§λ€μ΄λλ κ²μΌλ‘ μκ°νλ©΄ λλ€.
π 컨ν μ΄λλ₯Ό μ€νν μ μλ νμΌ = Docker Image
π‘ pullκ³Ό buildμ μ°¨μ΄λ ?
pull
: λ컀 μ΄λ―Έμ§λ₯Ό λ컀 νλΈμ κ°μ registryμμ λ΄λ €λ°λλ€. μ΄λ―Έμ§λ₯Ό λ‘컬 μμ€ν μ λ€μ΄λ‘λνμ¬ μ μ₯νλ κ²μΌ λΏ μμ νκ±°λ 컀μ€ν°λ§μ΄μ§μ λΆκ°νλ€.
docker pull μ΄λ―Έμ§μ΄λ¦:νκ·Έ
build
: λ컀 μ΄λ―Έμ§λ₯Ό λ‘컬 μμ€ν μμ μλ‘ λΉλνλ€. Dockerfileμ΄λΌλ μ€μ νμΌμ μ¬μ©ν΄ μ΄λ―Έμ§λ₯Ό μ μνκ³ μ¬μ©μ μ§μ μ΄λ―Έμ§λ₯Ό λ§λ λ€.
docker build -t μ΄λ―Έμ§μ΄λ¦:νκ·Έ κ²½λ‘
π pull
μ μ΄λ―Έ ꡬμ±λ μ΄λ―Έμ§λ₯Ό λ€μ΄λ°μ μ¬μ© + μμ λ° μ»€μ€ν°λ§μ΄μ§ X
build
λ μ¬μ©μ μ§μ μ΄λ―Έμ§ λΉλ λ° μ»€μ€ν°λ§μ΄μ¦ + Dockerfile ν΅ν΄ μ΄λ―Έμ§ μ μ
λ컀 컨ν μ΄λ

λ 립λ κ°λ°νκ²½μΌλ‘, build λ μ΄λ―Έμ§κ° μ€νλ μνμ΄λ©° λμΌν μ΄λ―Έμ§λ₯Ό μ¬μ©νμ¬ μ¬λ¬ 컨ν μ΄λλ₯Ό λμμ μ€νν μ μλ€.
격리λ νκ²½μμ μ΄ν리μΌμ΄μ κ³Ό κ·Έ μμ‘΄μ±μ μΊ‘μννλ©° νΈμ€νΈμ λ 립μ μΈ νμΌμμ€ν , νλ‘μΈμ€λ₯Ό κ°μ§κ³ μλ€.
κ·Έλ¬λ―λ‘ νλμ μ΄ν리μΌμ΄μ μ μ€λ₯κ° λλ λ€λ₯Έ μ΄ν리μΌμ΄μ μ μν₯μ μ£Όμ§ μλλ€. (νλμ 컨ν μ΄λκ° μ¬λ¬ μμ μ νλ κ² μ§μ !)
Host OSμ 컀λμ 곡μ νλ―λ‘ μ»¨ν μ΄λμ μνκ° λ³νκ±°λ μμ λλλΌλ μ΄λ―Έμ§λ λ³νμ§ μκ³ κ·Έλλ‘ μ‘΄μ¬νλ€.
πΉ 컨ν μ΄λκ° νμν μ΄μ
- 60-70λ λμλ μ»΄ν¨ν°κ° ν μ΄ν리μΌμ΄μ μ€νμ λ΄λΉνλ κ²μ΄ μΌλ°μ β νλ‘μΈμ€(OSμμ μ€ν μ€μΈ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€) μ€λ κ±Έλ¦Ό
- 컀λμ HWμ SW κ°μ ν΅μ μ κ΄λ¦¬νλ©° μμ€ν μμκ³Ό λ€μν μ»΄ν¨ν° μμ μ ν¨μ¨μ μΌλ‘ μ‘°μ νκ³ μ μ΄ π νλ‘μΈμ€λ 컀λμ μν΄ μμ±λκ³ κ΄λ¦¬λ¨
- μννΈμ¨μ΄ μλΉμ€ μ₯μ λ°μ β μ»΄ν¨ν
μμμ μ΅λν 곡μ ν΄μ μ¬μ©ν΄ λΉ λ₯΄κ² λ§λ€κΈ° μν΄ μμ λΆλ¦¬ν΄μ μ¬μ©
- VM μ¬μ© π Guest Operating System ν λΉν΄μ 격리
- 컨ν μ΄λ μ¬μ© π Host Operating Systemμμ 격리 (μ΄μ체μ μμ€μμ 격리) = Host μ΄μ체μ 컀λ 곡μ β ν¨μ¬ κ°λ²Όμμ§

πΉ 컀λ
- User Mode : μμ© νλ‘κ·Έλ¨μ΄ μ€νλκ³ μ¬μ©μκ° μμ€ν μ μ κ·Όνλλ° μ¬μ©λ¨ π νλ‘μΈμ€κ° μ νλ μμ€ν μμμλ§ μ κ·Ό κ°λ₯. μ΄μ체μ μ μλΉμ€λ₯Ό μμ²νκΈ° μν΄ System callμ μ¬μ©νμ¬ μ»€λ λͺ¨λλ‘ μ ν
- Kernel Mode : μ΄μ체μ κ° μ 체 μμ€ν μμκ³Ό νλμ¨μ΄μ μ κ·Ό κ°λ₯

λ컀 μμ§

컨ν μ΄λλ₯Ό μμ±νκ³ κ΄λ¦¬νλ κΈ°λ₯μ μ 곡νλ ν΄λΌμ΄μΈνΈ-μλ² ννμ μ΄ν리μΌμ΄μ μ΄λ€.
μΈ κ°μ§ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ Έ μλ€.
- λ컀 λ°λͺ¬ : 컨ν μ΄λ κ΄λ¦¬λ₯Ό μν λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ‘ μ΄λ―Έμ§ μμ±, 컨ν μ΄λ μ€ν, λ€νΈμν¬ μ€μ λ±μ λ컀 μ£Όμ κΈ°λ₯μ μ€ννκ³ κ΄λ¦¬νλ€. 컨ν μ΄λμ μμ±, μ€ν, μ€μ§μ κ°μ μλͺ μ£ΌκΈ°λ₯Ό κ΄λ¦¬νλ©° μ΄λ―Έμ§λ₯Ό λΉλνκ³ μ μ₯μμμ μ΄λ―Έμ§λ₯Ό κ°μ Έμ€λ μν μ μννλ€.
- λ컀 CLI ν΄λΌμ΄μΈνΈ : μ¬μ©μκ° μ»€λ§¨λ λΌμΈμ ν΅ν΄ λ컀 μμ§κ³Ό μνΈμμ©ν μ μκ² νλ μΈν°νμ΄μ€
- REST API : λ컀 λ°λͺ¬κ³Ό ν΅μ νλ μΈν°νμ΄μ€
πΉ λμ λ°©μ

- μ΄λ―Έμ§ λ€μ΄λ‘λ λλ λΉλ : 컨ν μ΄λλ₯Ό μ€ννκΈ° μ μ λ컀 μμ§μ ν΄λΉ μ΄ν리μΌμ΄μ μ μ€ννλ λ° νμν λͺ¨λ νμΌκ³Ό μ€μ μ΄ ν¬ν¨λ λ컀 μ΄λ―Έμ§κ° νμν¨ π λ컀 νλΈλ λ€λ₯Έ μ΄λ―Έμ§ μ μ₯μμμ μ΄λ―Έμ§λ₯Ό λ€μ΄λ‘λνκ±°λ Dockerfileμ μ μν΄ μλ‘μ΄ μ΄λ―Έμ§ λΉλ
- 컨ν μ΄λ μμ± : μ΄λ―Έμ§ μ€λΉλλ©΄ μ¬μ©μκ° λ컀 λ°λͺ¬μκ² μ»¨ν μ΄λ μμ± μμ² π λ€νΈμν¬ μ€μ μ΄λ λ³Όλ₯¨ λ§μ΄νΈμ κ°μ μΆκ°μ μΈ μ΅μ μ§μ κ°λ₯
- 컨ν μ΄λ μ€ν : λ컀 λ°λͺ¬μ΄ 컨ν μ΄λ λ΄λΆμμ μ μλ μ΄ν리μΌμ΄μ μ μ€ν π μ΄ κ³Όμ μμ 컨ν μ΄λλ λ 립λ νμΌ μμ€ν , λ€νΈμν¬ μΈν°νμ΄μ€, νλ‘μΈμ€ID κ³΅κ° λ±μ κ°κ² λλ©° μ΄λ 컨ν μ΄λλ₯Ό νΈμ€νΈ μμ€ν κ³Ό 격리λ νκ²½μμ μ€νλκ² ν¨
- 컨ν μ΄λ κ΄λ¦¬ : CLI ν΅ν΄ μ€ν μ€μΈ 컨ν μ΄λ μ‘°ν, λ‘κ·Έ νμΈ, μ€μ§ λλ μμ κ°λ₯
- 리μμ€ κ΄λ¦¬ : Cgroupsμ λ€μμ€νμ΄μ€μ κ°μ 리λ μ€μ ν΅μ¬ κΈ°λ₯ μ¬μ©νμ¬ μ»¨ν μ΄λμ 리μμ€ μ¬μ©λ μ ννκ³ μ»¨ν μ΄λ κ°μ 격리 μ μ§
λ컀 λ³Όλ₯¨
컨ν μ΄λμ λλ ν 리μ μ΄μ체μ (Host)μ λλ ν 리λ₯Ό μ°κ²°νλ λ°©μμ΄λ€.
λ§μ½ dockerμ 컨ν μ΄λλ₯Ό μμ νλ©΄ 컨ν μ΄λ λ΄λΆμ λ°μ΄ν° λν μμ λλ€.
컨ν μ΄λκ° μμ λμ΄λ λ°μ΄ν°λ₯Ό μꡬμ μΌλ‘ μ μ₯νλ €λ©΄ volumeμ μ¬μ©νλ©΄ λλ€.

컨ν μ΄λλ₯Ό μ€νμν¬ λ λ³Όλ₯¨ μ€μ μ νλ©΄λλ€.
Volumesμμ Host pathμ Container pathμ μ λ ₯ν κ²μ λλ ν 리λ‘,
Host pathμ container path λλ ν 리λ₯Ό μ°κ²°νκ² λ€λ μλ―Έμ΄λ€.
μ΄λ―Έμ§ λ°°ν¬

1. λ‘컬μ Dockerλ₯Ό μ€μΉνκ³ Dockerfileμ λ§λ λ€.
2. Dockerfileμ buildν΄μ Imageλ‘ λ§λ λ€.
3. Imageλ₯Ό Container Registryμ pushνλ€.
4. λ€λ₯Έ μλ²μ Dockerλ₯Ό μ€μΉνκ³ Container Registryμ μλ Imageλ₯Ό pullνλ€.
5. Dockerμμ Imageλ₯Ό run νλ€.
μ°Έκ³ μλ£
https://www.linkedin.com/pulse/kernel-mode-v-user-pallab-sarma/
'DevOps > π³ Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[π³ Docker] λ컀 λͺ λ Ήμ΄ μ 리 - Dockerfile (0) | 2024.04.16 |
---|