- 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 λ₯Ό λ£μ΄ 리λ μ€μ μλ λͺ λ Ήμ μ¬μ©ν μ μλ€.
컨ν μ΄λ κΈ°μ μ ν΅ν΄μ μ¬μ©, μμ μ©μ΄
μννΈμ¨μ΄λ₯Ό λΉ λ₯΄κ² μ λ¬ν΄μ€λ€.