- toc {:toc}
Docker
-
What is Docker?
-
μλμ°λ, λ§₯μ΄λ μ½κ² μ€μΉλκ³ μμ λ μ μλλ‘ λ§λ λ€.
-
DevOps : κ°λ°κ³Ό μ΄μμ κ³Όμ μ μ¬λμ΄ κ°μ νμ§ μκ³ μλνλμ΄ μ²λ¦¬νλ κ³Όμ μ λ§νλ€. μ½λλ₯Ό μμ±νκ³ μμ°μ νλ λλ μ΄λ₯Ό μ€μΈλ€.
-
λ΄κ° μνλ Infrastructureλ₯Ό Applicationλ€μ κ΄λ¦¬νλ κ²κ³Ό λ§μ°¬κ°μ§λ‘ κ΄λ¦¬ν μ μλ€. μ¦, Infrastructureλ₯Ό μ½λ©ν μ μλ€. Infrastructure as Code (IaS)
-
νμλ‘ νλ κ²μ dockerfileμ λ΄μμ λΉλ, docker imageκ° λ§λ€μ΄μ§λ€. docker imageλ₯Ό κ°μ§κ³ κ°μ νμν μ»΄ν¨ν°μ κ°μ Έκ° μ€ν β 컨ν μ΄λ ννλ‘ μ€νλ¨.
- Dockerfileμ μ¬μ©ν΄ λ 립μ μΈ immutable infrastructure νκ²½μ μ€μ νλ€.
-
Why use Docker?
- Flexible - μ΄λ€ μ’ λ₯μ 볡μ‘ν applicationμ΄λ 컨ν μ΄λν ν μ μλ€.
- Lightweight - μνμΈ λ¦¬λ μ€ μ¬μ© β λ§€μ° κ°λ³λ€.
- Interchangeable - μλΉμ€μ μ λ°μ΄νΈ, μ κ·Έλ μ΄λλ₯Ό μΏ λ²λ€ν°μ€μ κ°μ μ€μΌμ€νΈλ μ΄ν°λ₯Ό ν΅ν΄μ μ€νμ μ μ§νλ©΄μ μ§νν μ μλλ‘ λλλ€. μλνλ λꡬ μ¬μ©
-
Docker Image : Appμ μ€ννκΈ° μν΄ νμν λͺ¨λ κ²μ ν¬ν¨ν μ€νκ°λ₯ν ν¨ν€μ§μ΄λ€.
- μ½λ
- λΌμ΄λΈλ¬λ¦¬
- νκ²½ λ³μ
- μ€μ νμΌ λ±..
-
Docker Container : μ΄λ―Έμ§μ μ€ν μΈμ€ν΄μ€
- μ΄λ―Έμ§λ μ€νλ λ λ©λͺ¨λ¦¬μμ 컨ν μ΄λκ° λλ€.
- κ°μ μ΄λ―Έμ§λ‘λΆν° μ¬λ¬ κ°μ 컨ν μ΄λκ° μ€νλ μ μλ€.
-
Sharing Immutable Infrastructures 컨ν μ΄λμ λ©μΉ΄ = docker hub λ컀 νλΈλ₯Ό ν΅ν΄μ λκΈ°ν κ°λ₯ μΌμΌμ΄ μ€μΉν νμ μμ΄, dockerfileμ ν΅ν΄ κ°λ°νκ²½μ νλ²μ λμΌνκ² λ§λ€ μ μλ€.
docker container run -it -d βrm βname ubuntuos ubuntu:latest
- -it : interaction μνΈμμ© ν€λ³΄λ μ μΆλ ₯
- -d βrm : 컨ν μ΄λκ° λλλ©΄ μμ ν΄λΌ.
docker exec -it ubuntuos /bin/bash
- ubuntuos /bin/bashμ μλ νμΌμ μ€νν΄λΌ β ubuntu μ€νλ¨
- 컨ν μ΄λ μμ μ νκΈ° μν΄ μκ² μ»¨ν μ΄λνν μ°λΆν¬. μΌλ°μ μΈ μ°λΆν¬λ μλλ€.
docker image rm -f ubuntu:latest
- ubuntu:latestλ₯Ό -f κ°μ λ‘ μμ ν΄λΌ
μ°λΆν¬μ κΈ°λ₯μ΄ λ§μ΄ νμνμ§ μμ κ²½μ° μνμΈμ λ§μ΄ μ¬μ©νλ€. λ¨μν ν¬κΈ°κ° μμμ μνμΈμ λ§μ΄ μ¬μ©νλκ°? μλλ€. μνμΈμ΄ ν¬κΈ°κ° μμ§λ§ busyboxλ₯Ό λ£μ΄ 리λ μ€μ μλ λͺ λ Ήμ μ¬μ©ν μ μλ€.
컨ν μ΄λ κΈ°μ μ ν΅ν΄μ μ¬μ©, μμ μ©μ΄ μννΈμ¨μ΄λ₯Ό λΉ λ₯΄κ² μ λ¬ν΄μ€λ€.