π κ³΅λΆ κ³κΈ°
μΆκ°μ μΈ λ컀 곡λΆλ₯Ό μν΄ μ νλΈ λ°λ°°λ λ컀 μ리μ¦λ₯Ό 보면μ μ λ¦¬ν΄ λ΄ λλ€.
λͺ©μ°¨
π1. 컨ν μ΄λλ₯Ό λ°°μ°λ μ΄μ ?
β³ μλμ λ³ν!
μλλ λ² μ΄λ©ν λ°©μ > κ°μν λ°©μ > κ°μν λ°©μ μ€ μ»¨ν μ΄λ λ°©μ λ±μ₯ μμΌλ‘ λ°λμλ€.
- Bare Metal : νλμ¨μ΄μ 리μμ€λ₯Ό 곡μ νλ κ°μν λ°©μκ³Όλ λ€λ₯΄κ² νλμ¨μ΄μ λͺ¨λ μ±λ₯μ μ¬μ©ν μ μλ λ°©μ
- Virtualization : λ² μ΄ λ©ν μμ€ν μμ HypervisorλΌλ μννΈμ¨μ΄ μ κΈ°μ μ κ°μ§κ³ κ°μ μ»΄ν¨ν°(κ°μλ¨Έμ )λ₯Ό λ§λ€μ΄ νλμ νλμ¨μ΄λ₯Ό λλ μΈ μ μκ² νλ λ°©μ
νμ§λ§ νμ¬λ μ¬μ©νλ μ λμ λ°λΌ νμ₯νλ μΆμν μ μλ μꡬμ μλΉμ€ μ€λ¨μμ΄ μ΄μν΄μΌνλ νκ²½μμ μ΄λ° μμ€ν μ νκ³κ° μμλ€. κ·Έλμ λ±μ₯ν κ²μ΄ λ² μ΄ λ©ν μμ€ν μμ OSλ₯Ό μ¬λ¦¬κ³ 컨ν μ΄λ μμ§μ μ¬λ¦° μμ€ν μ΄μλ€.
κ·Έλ¦¬κ³ λμ»€κ° μ΄ μ»¨ν μ΄λ κΈ°μ μ€ νλμ΄λ€.
λ컀λ
- μ€μ μ΄ν리μΌμ΄μ κ³Ό μ΅μνλ νκ²½λ§ λ€μ΄κ°κΈ° λλ¬Έμ μ©λμ΄ νμ°νκ² μ λ€β¬οΈ
- 컨ν μ΄λ λ§λ€ isolation(κ³ λ¦½)λμ΄μμ΄ νμ₯μ±μ΄ μ’λ€
β μ κ΅³μ΄ λ¦¬λ μ€μμ λλ €μ?
리λ μ€ μ»€λ κΈ°λ₯μ μ¨μΌ νλκΉ!
리λ μ€λ 컀λ κΈ°λ₯ κΈ°λ°μΌλ‘ λ§λ€μ΄μ§ λ컀λ
λ 립λ κ³΅κ° νμ± chroot κΈ°λ₯μ κ·Έ κ³΅κ° μμ 6κ°μ§ isolate κΈ°λ₯μΈ namespaceλ₯Ό μ§μν΄ μμ ν λΆλ¦¬λ μ μκ² λλλ€. κ·Έλ¦¬κ³ λΆλ¦¬λ κ³³μ νμν λ§νΌμ HW(νλμ¨μ΄)μ§μνλ cgroup λ± λ¦¬λ μ€ μ»€λ κΈ°λ₯μ μ¬μ©νμ¬ μλΉμ€λ₯Ό μ 곡νκΈ° λλ¬Έμ νν 리λ μ€λ‘ λλ €μΌ νλ€.
κ·ΈλΌ μλμ°λ Macμμ???
리λ μ€ κ²½μ°λ Hypervisor νμμμ΄ μ»¨ν μ΄λκ° μ¬λΌκ°μ§λ§ 리λ μ€ κΈ°λ₯μ΄ μλ μλμ°λ Mac κ²½μ° Hypervisorλ₯Ό νμ±ν μμΌ κ·Έ μμ 컨ν μ΄λλ₯Ό λλ¦°λ€.
π₯ μΌλ° νλ‘κ·Έλ¨κ³Ό 컨ν μ΄λ μ°¨μ΄
νλμΌμ κ°λ€. κ΅¬μ‘°κ° λ€λ₯Ό λΏ!
λλ€ μ ν리μΌμ΄μ μΈμ΄μ λν νκ²½μμλ₯Ό μ€μΉνκ³ μ± μμ€μ½λλ₯Ό μ€ννμ¬ λ리λ κ²μ κ°λ€.
λ€λ§, μ ν리μΌμ΄μ μ΄μ νκ²½μ λ°λ‘ μ°λμ§ (μΌλ° λ°©μ)
μλλ©΄ μ΄μ νκ²½ μμ 컨ν μ΄λ κΈ°λ°μ λκ³ κ·Έ μμ μ΄ν리μΌμ΄μ μ μ΄μνλ μ§κ° λ€λ₯Έ κ² (컨ν μ΄λ λ°©μ)
π‘ κΈ°λ₯μ΄ κ°μΌλ©΄ λλ체 μ μ°λ 건λ°?!?
- κ°λ°μκ° λ§λ κ·Έλλ‘ μ΄λμλ λμκ°λ€.
- νμ₯ / μΆμκ° μ©μ΄ (Scale out, Scale In)
- MSA(MicroService Architecture), DevOpsμ μ ν©
κ°λ°νκ²½κ³Ό μ΄μνκ²½μ΄ λ¬λΌ κ°λ°ν μ΄ν리μΌμ΄μ μμ μ΄μνκ²½μμ μ μλμκ°λ κ²½μ°κ° λ§μλ€.
νμ§λ§ 컨ν μ΄λλ₯Ό μ¬μ©νλ©΄ νλμ¨μ΄ μ΄μ ꡬ쑰, λ² μ΄μ€ νλ«νΌ λ±μ΄ λ¬λΌλ 컨ν μ΄λμ μ ν리μΌμ΄μ μ μ ν©ν νκ²½μ 미리 μ§μ΄ λ£μ΄ λμ μνμ΄κΈ° λλ¬Έμ κ°λ°νκ²½κ³Ό λμΌνκ² λμκ°λ€.
κ³Όκ±°μ Scale outμ μλ²λ₯Ό λ리며 OSλ ν¨κ» νμ₯λλ μμ΄ μλ€λ©΄
컨ν μ΄λλ κ°μ OS μμ λ€λ₯Έ 컨ν μ΄λ νλλ₯Ό λ μΈμ°λ λ°©μμΌλ‘ νμ¬ ν¨μ¬ ν¨μ¨μ μΌλ‘ νμ₯μ΄ κ°λ₯νλ€.
μμ€ν μ κΈ°λ₯λ§λ€ μκ² μͺΌκ°μ μλΉμ€λ₯Ό λ§λ ꡬ쑰 MSA
κ°λ°λΆν° μλΉμ€μ΄μκΉμ§ μλνμμΌμ£Όλ DevOps νκ²½
λ λͺ¨λ 컨ν μ΄λκ° μ ν©νκΈ° λλ¬Έμ΄λ€.
π2. μ€μΉνλ €λ©΄ λκ° νμν΄?
- Virtual Boxλ₯Ό μ΄μ©ν΄ μ°λΆν¬ μλ², CentOS μλ²μ λ컀 νκ²½ μ€μΉ
- κ°μ μλ² λ§λ€κΈ°λ λ°λ‘ μ 리νμ§ μκ³ μμλ³΄κ³ λ°λΌ μ§ν - windowsμ Docker Desktop μ¬μ©νκΈ°
Docker] μ€μΉ
π λ컀 λ€μ΄λ‘λ Docker: Accelerated, Containerized Application Development Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code. www.docker.com μμ
littlezero48.tistory.com
리λ μ€ κΆν κ΄λ ¨
리λ μ€ κ³μ κΆν μ£ΌκΈ°:
rootκ³μ μΌλ‘ λ‘κ·ΈμΈν΄μ usermod λͺ λ Ήμ΄λ‘ (user modify) G μ΅μ μΌλ‘ dockerλΌλ κ·Έλ£Ήμ ν΄λΉ κ³μ μ μΆκ°ν΄μ€λ€
usermod -a -G docker κ³μ μ΄λ¦
π3. 컨ν μ΄λ μμλ€μ΄ μμ보μ
컨ν μ΄λμ 컨ν μ΄λ μ΄λ―Έμ§μ ꡬ쑰λ₯Ό μμλ³΄κ³ λμ λ°©μμ μ΄ν΄ν΄λ³΄μ.
𧱠ꡬ쑰
- 컨ν μ΄λλ 1κ° = Application νλ‘μΈμ€ 1κ°
- 컨ν μ΄λ λΌλ¦¬λ νλμ¨μ΄ 리μμ€κ° μμ λ 립 (cpu, memory, network, disk, user λ±μ΄ λͺ¨λ λ 립μ )
컨ν μ΄λλ λ컀 λ°λͺ¬(dockerd) μμ μλνλ©° λ컀 λ°λͺ¬μ΄ μ€νλκ³ μλ 리λ μ€ μ»€λμ΄ μλ μμ€ν μ λ컀 νΈμ€νΈλΌκ³ νλ€. λ컀 νΈμ€νΈ μ μ₯μμ 컨ν μ΄λλ κ·Έλ₯ νλμ νλ‘μΈμ€μΌ λΏμ΄λ€.
μ¬λ¬κ°μ λ μ΄μ΄κ° λͺ¨μ¬μ Έ νλμ μ ν리μΌμ΄μ μ μ€ν μν¬ μ μλλ‘ νλ μ΄λ―Έμ§λ€μ λͺ¨μμ΄ μ»¨ν μ΄λ μ΄λ―Έμ§μ΄λ€.
μ΄ μ»¨ν μ΄λ μ΄λ―Έμ§κ° λ©λͺ¨λ¦¬μ μ¬λΌκ° νλμ νλ‘μΈμ€λ‘ λμνκ² λλ©΄ 컨ν μ΄λκ° λλ€.
𦿠컨ν μ΄λ λμλ°©μ
- $ docker search nginx > dockerdμκ² μμ² > Dockerhubμμ κ²μ > μ΄λ―Έμ§ κ²μ μ±κ³΅
- $ docker pull nginx:latest > Dockerhubλ‘ λΆν° nginx 컨ν μ΄λ μ΄λ―Έμ§λ₯Ό κ°μ Έμ΄(μ΄λ―Έμ§λ νλλλΌλ κ·Έ μμ λ μ΄μ΄λ μ΄λ―Έμ§λ§λ€ μ«μλ ꡬμ±λ λ€λ¦)
- $ docker run -d --name web -p 80:80 nginx:latest > ν΄λΉ 컨ν μ΄λ μ΄λ―Έμ§λ₯Ό κ°μ§κ³ 컨ν μ΄λλ₯Ό μμ±ν΄ dockerd μμ μ¬λΌκ° μλνκ² λ¨
π© μ κΉ μ©μ΄ μ 리
Docker Host : Docker Daemonμ΄ λμνκ³ μλ μμ€ν
Docker Daemon (dockerd) : μ°λ¦¬κ° μ€μΉν λ컀
Docker Client Command : docker daemonμ μ μ΄νλ λͺ λ Ήμ΄
Docker Hub : λ컀 μ΄λ―Έμ§ μ μ₯μ
Container Images : νλμ μ ν리μΌμ΄μ μ μ€νμν€κΈ° μν΄ λͺ¨λ νμΌκ³Ό μ€μ κ°μ μ§λ νμΌ
Container : 컨ν μ΄λ μ΄λ―Έμ§κ° μ€μ λ‘ λμνκ² λμ΄ νλμ νλ‘μΈμ€κ° λλ©΄ 컨ν μ΄λ
+ ꡬ쑰 : https://littlezero48.tistory.com/273
π€ μ€μ΅
1οΈβ£ Docker Hubμμ 컨ν μ΄λ μ΄λ―Έμ§ κ²μ
1. μΌλ¨ λμ»€κ° μ μμ μΌλ‘ μ€ν μ€μΈμ§ νμΈ
systemctl status docker
2. μ΄λ―Έμ§ κ²μ
docker search μ΄λ―Έμ§λͺ
μ°λ¦¬λ κ·Έ μ€ νλμ λΌμΈ μ΄λ―Έμ§λ₯Ό μ¬μ©ν κ²
2οΈβ£ 컨ν μ΄λ μ΄λ―Έμ§ λ€μ΄λ‘λ ν image layer 보기
1. μ΄λ―Έμ§ λ μ΄μ΄λ₯Ό λ³΄λ €λ©΄ root κ³μ μΌλ‘ λ€μ΄κ°μΌν¨
su -
2. root κ³μ μμ λΌμ΄λΈλ¬λ¦¬ > λ컀 μμΉλ‘ κ° listλ₯Ό 보면 μλμ κ°μ λλ ν 리 리μ€νΈλ₯Ό λ³Ό μ μλλ° μ¬κΈ°μ overlay2κ° λ°λ‘ 컨ν μ΄λ μ΄λ―Έμ§ λ μ΄μ΄κ° λ€μ΄κ°λ€.
3. μ΄λ―Έμ§ λ€μ΄ λ°κΈ°
docker pull μ΄λ―Έμ§λͺ
4. μ΄λ―Έμ§ λ€μ΄ μ λ μ΄μ΄ κ°μμ νλ₯Ό λΉκ΅ν΄ 보면 λ€μ΄ λ°μ λ§νΌ λμ΄λ κ±Έ λ³Ό μ μλ€.
3οΈβ£ 컨ν μ΄λ μ€ννκ³ νμΈν΄λ³΄κΈ°
1. 컨ν μ΄λ μμ± λ° μ€ν
$ docker | run | --name | web | -d | -p | 80:80 | nginx |
컨ν
μ΄λ μμ± λ° μ€ν |
컨ν
μ΄λ μ΄λ¦ μ΅μ |
μμ μ΄λ¦ | λ°±κ·ΈλΌμ΄λ (λ°λͺ¬ λͺ¨λ) |
ν¬νΈν¬μλ© | νΈμ€νΈ:컨ν μ΄λ | μ΄λ―Έμ§λͺ |
2. 컨ν μ΄λ μ€ν νμΈ
docker ps
3. 리λ μ€μμ νμ΄μ§λ₯Ό νμΈν΄λ³΄μ
4. μμ ν΄λ³΄κΈ°
- 컨ν μ΄λ μμ
μ€νλκ³ μλ 컨ν μ΄λλ μμ ν μ μμ λ¨Όμ μ€μ§
# 컨ν
μ΄λ μ€μ§
docker stop 컨ν
μ΄λμ΄λ¦|컨ν
μ΄λID
# 컨ν
μ΄λ μμ
docker rm 컨ν
μ΄λμ΄λ¦|컨ν
μ΄λID
- μ΄λ―Έμ§ μμ
β 곡λΆμλ£
0 ~ 3-2 κΉμ§
[λ°λ°°λ] λ컀 μ리μ¦
www.youtube.com
'DevOps > Docker' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°λ°°λ λ컀 μλ¦¬μ¦ 5] 컨ν μ΄λ 보κ΄μ°½κ³ Registry (0) | 2023.04.13 |
---|---|
λ°λ°°λ λ컀 μλ¦¬μ¦ 4] 컨ν μ΄λ λ§λ€κ³ νλΈμ λ°°ν¬ν΄λ³΄κΈ° (0) | 2023.04.13 |
μν°λ μ±λ¦°μ§ Docker 2] λ‘컬νκ²½μμ λ컀λ₯Ό νμ©ν΄λ³΄μ! (0) | 2023.04.09 |
μν°λ μ±λ¦°μ§ Docker 1] 컨ν μ΄λ κΈ°μ , Dockerμ κΈ°λ³Έ κ°λ κ³Ό μ¬μ©λ² (0) | 2023.04.09 |
Docker] κ°λ (0) | 2023.04.08 |