Tech

Docker μ‹œμž‘! (κ°„λ‹¨ν•œ 도컀 μ„€λͺ… 및 μ„€μΉ˜)

λ°€μ§„ 2024. 3. 31. 13:49

πŸ“š 도컀(Docker)λž€?

 

 λ„μ»€λŠ” λ¦¬λˆ…μŠ€ μ»¨ν…Œμ΄λ„ˆμ— μ—¬λŸ¬ κΈ°λŠ₯을 μΆ”κ°€ν•¨μœΌλ‘œμ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ»¨ν…Œμ΄λ„ˆλ‘œμ„œ μ’€ 더 μ‰½κ²Œ μ‚¬μš©ν•  수 있게 λ§Œλ“€μ–΄μ§„ μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈμ΄λ‹€.

 

 Goμ–Έμ–΄λ‘œ μž‘μ„±λ˜μ–΄ 있으며 기쑴에 μ“°μ΄λ˜ 가상화 방법인 가상 λ¨Έμ‹ κ³ΌλŠ” 달리 도컀 μ»¨ν…Œμ΄λ„ˆλŠ” μ„±λŠ₯의 손싀이 거의 μ—†μ–΄μ„œ μ°¨μ„ΈλŒ€ ν΄λΌμš°λ“œ 인프라 μ†”λ£¨μ…˜μœΌλ‘œμ„œ λ§Žμ€ κ°œλ°œμžλ“€μ—κ²Œ μ£Όλͺ©λ°›κ³  μžˆλ‹€.

 

 

1.1 가상 λ¨Έμ‹ κ³Ό 도컀 μ»¨ν…Œμ΄λ„ˆ 

기쑴의 가상화 κΈ°μˆ μ€ μ—¬λŸ¬κ°œμ˜ 운영체제λ₯Ό ν•˜λ‚˜μ˜ ν˜ΈμŠ€νŠΈμ—μ„œ 생성해 μ‚¬μš©ν•˜λŠ” λ°©μ‹μ΄μ˜€λ‹€.

μƒμ„±λœ 각 게슀트 μš΄μ˜μ²΄μ œλŠ” μ™„μ „νžˆ λ…λ¦½λœ 곡간과 μ‹œμŠ€ν…œ μžμ›μ„ ν• λ‹Ήλ°›μ•„ μ‚¬μš©ν•˜κ²Œλœλ‹€.

λŒ€ν‘œμ μΈ νˆ΄λ‘œλŠ”  VirtualBox, VMware ...등이 μžˆλ‹€. 

ν•˜μ§€λ§Œ λ…λ¦½λœ 곡간을 μƒμ„±ν•˜λŠ” μž‘μ—…μ€ λ°˜λ“œμ‹œ ν•˜μ΄νΌλ°”μ΄μ €λ₯Ό 거쳐야 ν•˜κΈ°λ•Œλ¬Έμ— 일반 ν˜ΈμŠ€νŠΈμ— λΉ„ν•΄ μ„±λŠ₯의 손싀이 λ°œμƒν•˜κ²Œ λœλ‹€. λ˜ν•œ 가상 머신을 λ°°ν¬ν•˜κΈ°μœ„ν•œ 이미지λ₯Ό μƒμ„±ν• λ•Œ μ΄λ―Έμ§€μ˜ ν¬κΈ°λ˜ν•œ 맀우 컀져 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ λ°°ν¬ν•˜κΈ°μ—λŠ” λΆ€λ‹΄μŠ€λŸ½λ‹€λŠ” 단점이 μžˆλ‹€. 

이에 λΉ„ν•΄ 도컀(Docker) μ»¨ν…Œμ΄λ„ˆλŠ”κ°€μƒν™” 곡간을 생성할 λ•Œ ν”„λ‘œμ„ΈμŠ€ λ‹¨μœ„μ˜ 격리 ν™˜κ²½μ„ λ§Œλ“€κΈ° λ•Œλ¬Έμ— μ„±λŠ₯손싀이 거의 μ—†λ‹€. μ΄λ―Έμ§€λ˜ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬λ™μ‹œν‚€λŠ”λ° ν•„μš”ν•œ 라이브러리 및 μ‹€ν–‰ 파일만 μ‘΄μž¬ν•˜κΈ°μ— ν¬κΈ°λ˜ν•œ 쀄어든닀.  

λ”°λΌμ„œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ΄λ―Έμ§€λ‘œ λ§Œλ“€μ–΄ λ°°ν¬ν•˜λŠ” μ‹œκ°„μ΄ 가상머신에 λΉ„ν•΄ λΉ λ₯΄κ³  μ„±λŠ₯손싀도 거의 μ—†λ‹€λŠ” μž₯점이 μžˆλ‹€.

 

1.2 도컀 μ—”μ§„ μ„€μΉ˜

λ„μ»€λŠ” λ¦¬λˆ…μŠ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œμ–΄ν•˜λŠ” APIλ₯Ό Goμ–Έμ–΄λ‘œ κ΅¬ν˜„ν•œ libcontainerλ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— λŒ€λΆ€λΆ„μ˜ λ¦¬λˆ…μŠ€ μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©ν•  수 μžˆλ‹€. λ¦¬λˆ…μŠ€ 뿐만 μ•„λ‹ˆλΌ κ·Έ μ™Έμ˜ 운영체제(Window, Mac λ“±)μ—μ„œλ„ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.

 

λ„μ»€μ˜ κΈ°λŠ₯을 μ™„μ „ν•˜κ²Œ μ‚¬μš©ν•˜λ €λ©΄ λ¦¬λˆ…μŠ€μ—μ„œ μ‚¬μš©ν•˜λŠ” 것이 κ°€μž₯ λ°”λžŒμ§ν•˜λ‹€κ³ λŠ” ν•˜μ§€λ§Œ..

(λ‚˜λŠ”.. μœˆλ„μš°λ₯Ό μ‚¬μš©ν•˜λ‹ˆ.. κ°„λ‹¨ν•˜κ²Œ μœˆλ„μš°μ—μ„œμ˜ μ„€μΉ˜λ§Œ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² λ‹€.)

(μœˆλ„μš°μ—μ„œλŠ” 도컀 νˆ΄λ°•μŠ€μ™€ 자체 가상화 도컀λ₯Ό λ‘˜ λ‹€ μ„€μΉ˜ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•˜μ—¬μ„œ λ‘˜ 쀑 ν•˜λ‚˜λ§Œ μ„€μΉ˜ν•˜λŠ” 것이 μ’‹λ‹€κ³  ν•˜λŠ”λ°.. 일단 ν•΄λ³΄μž..)

도컀 λ‹€μš΄λ‘œλ“œ ν•˜λŠ”κ³³μœΌλ‘œ λ‚ μ•„μ˜΄..( https://docs.docker.com/desktop/install/windows-install/ )

 

Docker Desktop for Windowsλ₯Ό λˆ„λ₯΄κ³  λ‹€μš΄μ‹œμž‘!! μ–Όλ§ˆ μ•ˆκ±Έλ €μ„œ λ‹€μš΄μ΄ λ‹€λœλ‹€..

Docker Desktop Installer.exe λ₯Ό μ‹€ν–‰

 

μ±…μ—μ„œ λ³ΈλŒ€λ‘œ Docker for WindowsλŠ” Hyper-vλ₯Ό μ΄μš©ν•΄ 가상화 ν™˜κ²½μ„ μ œκ³΅ν•˜κΈ° λ•Œλ¬Έμ— 도컀 νˆ΄λ°•μŠ€μ™€ ν˜Έν™˜λ˜μ§€ μ•Šκ³  버좔얼 λ°•μŠ€μ™€λ„ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ”λ‹€κ³  ν•œλ‹€.. 기쑴에 μ“°λ˜κ²Œ μžˆλ‹€λ©΄.. 백업해두고 ν•˜λ©΄λ˜μ§€λ§Œ λ‚˜λŠ” μ—†μœΌλ‹ˆκΉ.. 일단 OK!!

 

μ„€μΉ˜μ€‘
μ„€μΉ˜ μ™„λ£Œ!

 

πŸ“Œ Stableκ³Ό Edge쀑에 μ„ νƒν•΄μ„œ λ‹€μš΄ 받을 수 μžˆλŠ”λ° Stable은 μ—¬λŸ¬μ°¨λ‘€ 검증을 거쳐 μ•ˆμ •μ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 버젼이고 EdgeλŠ” μ΅œμ‹  릴리슀 λ‚΄μš© 및 μ‹€ν—˜μ μΈ κΈ°λŠ₯을 ν¬ν•¨ν•œ 버전이닀. μš°μ„ .. μ•ˆμ •μ μΈ Stable을 λ°›λŠ”κ²Œ 쒋을 것 κ°™λ‹€!!

 

μ„€μΉ˜κ°€ μ™„λ£Œλ˜κ³  Hyper-VκΈ°λŠ₯을 ν™œμ„±ν™”ν•˜κΈ°μœ„ν•΄ PCλ₯Ό μž¬μ‹œμž‘ν•΄μ•Όν•œλ‹€.

κ·Έλ ‡κ²Œ μž¬μ‹œμž‘ν•˜κ³ λ‚˜λ©΄ 트레이 μ•„μ΄μ½˜μ—μ„œ 도컀가 μž‘λ™μ€‘μΈμ§€λ₯Ό 확인할 수 μžˆλ‹€. 

 

 

 

 

λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ—μ„œ 도컀 버전 확인

 

μ„€μΉ˜κ°€ μ™„λ£Œλ˜λ©΄ λͺ…λ Ή ν”„λ‘¬ν”„νŠΈλ‚˜ νŒŒμ›Œμ…€ λ“±μ˜ 셰을 μ‹€ν–‰ν•΄ 도컀λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

 

πŸ“š Docker Toolbox 와 Docker for Windows/Mac의 차이점

Docker ToolboxλŠ” λ¦¬λˆ…μŠ€ 가상머신을 생성해 κ·Έ 내뢀에 도컀λ₯Ό μ„€μΉ˜ν•˜μ§€λ§Œ ν›„μžλŠ” 호슀트 μžμ²΄μ— 가상화 κΈ°μˆ μ„ μ μš©ν•œλ‹€. μ΄λŠ” 도컀 μ»¨ν…Œμ΄λ„ˆλ₯Ό μƒμ„±ν•œ λ’€ μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•˜λŠ” λ°©λ²•μ˜ 차이가 μžˆλ‹€. 도컀 νˆ΄λ°•μŠ€λŠ” 가상머신을 μƒμ„±ν•œ λ’€ 도컀λ₯Ό μƒμ„±ν•˜κΈ°μ— 2쀑 포트 ν¬μ›Œλ”©μ΄ ν•„μš”ν•˜μ§€λ§Œ ν›„μžλŠ” 1번의 ν¬νŠΈν¬μ›Œλ”©μœΌλ‘œ μ»¨ν…Œμ΄λ„ˆμ— μ ‘κ·Όν•  수 μžˆλ‹€. 

 

μ˜€λžœλ§Œμ— 도컀λ₯Ό λ‹€μ‹œ κ³΅λΆ€ν•˜λŠ”λ°.. ν•™κ΅μ—μ„œ λ°°μšΈλ•Œλ³΄λ‹€.. 책을 ν•˜λ‚˜ν•˜λ‚˜λ³΄λ©΄μ„œ.. μ •λ¦¬ν•΄λ‚˜κ°€λ‹ˆ μƒˆλ‘­κ³  μž¬λ°ŒλŠ” μ‹œμž‘μ΄ 될 것 κ°™λ‹€ λκΉŒμ§€ 책을 μ™„μ£Όν•˜κ³  도컀λ₯Ό (λ§ˆμŠ€ν„°....γ…Žγ…Ž) 잘 μ‚¬μš©ν•΄λ³΄μž!!