[가상화] Docker, Virtual Machine

leejk1072Β·2024λ…„ 9μ›” 10일

ν΄λΌμš°λ“œ

λͺ©λ‘ 보기
1/8

πŸ₯ μ„œλ‘ 

본격적으둜 ν΄λΌμš°λ“œ 곡뢀λ₯Ό μ‹œμž‘ν•˜κΈ° 전에, μˆ˜μ—…μ—μ„œ λ“£λŠ” 단어듀이 μƒμ†Œν•˜μ—¬ μ •λ¦¬ν•΄λ΄…λ‹ˆλ‹€.
금일 μˆ˜μ—…μ—μ„œλŠ” docker, virtual box, vagrant 등을 μ„€μΉ˜ν•˜κ³  κ°„λ‹¨νžˆ μ‚¬μš©ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

μ°Έκ³ 
본인 μ‹€μŠ΅ ν™˜κ²½: MacBook Pro M1, 2020 (Sonoma(14.4.1)) MacOS의 virtual box 이슈둜 μ‹€μŠ΅ ν™˜κ²½ Windows둜 이전

그럼 μ‹œμž‘ ~


πŸ“š λͺ©μ°¨

  1. 도컀 (Docker)
  2. Vagrant
  3. 가상머신 (Virtual Machine, VM)

1. 도컀 (Docker)

  • μ»¨ν…Œμ΄λ„ˆ 기반의 μ˜€ν”ˆ μ†ŒμŠ€ 가상화 ν”Œλž«νΌ
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 그에 λ”°λ₯Έ ν™˜κ²½μ„ 격리된 μ»¨ν…Œμ΄λ„ˆμ— νŒ¨ν‚€μ§•ν•˜μ—¬ 개발, 배포, 싀행을 μ‰½κ²Œ μ§€μ›ν•˜λŠ” 툴

βœ… 가상화

  • 물리적인 컴퓨터 λ¦¬μ†ŒμŠ€λ₯Ό λ‹€λ₯Έ μ‹œμŠ€ν…œμ΄λ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ œκ³΅ν•˜λŠ” 것
  • 즉, ν•˜λ‚˜μ˜ 물리적 λ¦¬μ†ŒμŠ€ μœ„μ—μ„œ μ—¬λŸ¬ OSλ₯Ό λ™μ‹œμ— μ‹€ν–‰ν•  수 μžˆλŠ” 것

βœ… μ»¨ν…Œμ΄λ„ˆ

  • μ–΄λ–€ ν™˜κ²½μ—μ„œλ‚˜ μ‹€ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ λͺ¨λ“  μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§€
  • 호슀트 μ‹œμŠ€ν…œμ˜ 컀널을 λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆλ“€κ³Ό κ³΅μœ ν•¨

  • docker desktop을 μ‹€ν–‰ν•΄μ„œ μ‹€ν–‰ μƒνƒœλ₯Ό ν™•μΈν•œλ‹€.

  • docker version
    : 도컀 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„(daemon) 버전 정보λ₯Ό 좜λ ₯

    결과의미
    Client/Server Version도컀 ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„μ˜ 버전
    API version도컀 API의 버전
    Go version도컀 λΉŒλ“œμ— μ‚¬μš©λœ Go μ–Έμ–΄μ˜ 버전
    Git commitν•΄λ‹Ή λ²„μ „μ˜ Git 컀밋 ν•΄μ‹œ
    Built도컀가 λΉŒλ“œλœ λ‚ μ§œμ™€ μ‹œκ°„
    OS/Arch운영 μ²΄μ œμ™€ μ•„ν‚€ν…μ²˜
    Experimentalμ‹€ν—˜μ  κΈ°λŠ₯ μ‚¬μš© μ—¬λΆ€

2. Vagrant

  • 가상화 ν™˜κ²½μ„ κ΄€λ¦¬ν•˜κ³  ν”„λ‘œλΉ„μ €λ‹ν•˜λŠ” 도ꡬ
  • κ°œλ°œμžλ“€μ΄ λ™μΌν•œ 개발 ν™˜κ²½μ„ κ΅¬μΆ•ν•˜κ³ , λ‹€λ₯Έ 운영 μ²΄μ œλ‚˜ ν˜ΈμŠ€νŠΈμ—μ„œ λ™μΌν•œ 개발 ν™˜κ²½μ„ μ‹€ν–‰ν•  수 있게 ν•΄μ€€λ‹€
  • VirtualBox, VMware λ“±κ³Ό 같은 가상화 μ†Œν”„νŠΈμ›¨μ–΄μ™€ ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλ‹€
  • Vagrantfileμ΄λΌλŠ” νŒŒμΌμ„ μž‘μ„±ν•˜μ—¬ 가상 λ¨Έμ‹ μ˜ μ„€μ • 및 ν”„λ‘œλΉ„μ €λ‹μ„ κ΄€λ¦¬ν•˜λ©°, 이 νŒŒμΌμ€ 버전 관리 μ‹œμŠ€ν…œμ— μ €μž₯ν•˜μ—¬ λ‹€λ₯Έ κ°œλ°œμžμ™€ κ³΅μœ ν•  수 μžˆλ‹€

  • vagrant version

3. 가상머신 (Virtual Machine, VM)

  • 물리적 μ»΄ν“¨ν„°μ—μ„œ μ‹€ν–‰ν•˜λŠ” λͺ¨λ“  μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‹€ν–‰ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄ 컴퓨터
  • 물리적 기계과 λ§ˆμ°¬κ°€μ§€λ‘œ 가상 λ¨Έμ‹ μ—λŠ” 자체 운영체제(Windows, Linux λ“±), μŠ€ν† λ¦¬μ§€, λ„€νŠΈμ›Œν‚Ή, ꡬ성 μ„€μ • 및 μ†Œν”„νŠΈμ›¨μ–΄κ°€ ν¬ν•¨λ˜μ–΄ 있으며 ν•΄λ‹Ή ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰λ˜λŠ” λ‹€λ₯Έ VMκ³Ό μ™„μ „νžˆ λΆ„λ¦¬λœλ‹€

βœ… μž‘λ™ 방식
가상화가 단일 호슀트 μ»΄ν“¨ν„°μ—μ„œ μ—¬λŸ¬ 운영체제λ₯Ό μ‹€ν–‰ν•  수 μžˆλ„λ‘ μ •μ˜λœ 경우 가상화 μŠ€νƒμ˜ ν•„μˆ˜ ꡬ성 μš”μ†ŒλŠ” VMκ³Ό 호슀트 컴퓨터λ₯Ό ν•¨κ»˜ λ³΄κ΄€ν•˜λŠ” ν•˜μ΄νΌλ°”μ΄μ €μ΄λ‹€.


⭐️ ν•˜μ΄νΌλ°”μ΄μ € = 가상 머신을 호슀트 μ»΄ν“¨ν„°μ—μ„œ μ‹€ν–‰ν•˜κ³  λͺ¨λ“  VM에 ν”„λ‘œμ„Έμ„œ, λ©”λͺ¨λ¦¬ 및 μŠ€ν† λ¦¬μ§€λ₯Ό 배포할 수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄ 계측


이 ν•˜μ΄νΌλ°”μ΄μ €λŠ” VMM(가상 λ¨Έμ‹  λͺ¨λ‹ˆν„°)이라고도 ν•˜λ©°, μ—¬λŸ¬ VM이 μ‹€ν–‰ 및 λͺ¨λ‹ˆν„°λ§λ˜λŠ” 가상 ν”Œλž«νΌμ„ λ§Œλ“ λ‹€. λ”°λΌμ„œ λ™μΌν•˜κ±°λ‚˜ μ„œλ‘œ λ‹€λ₯Έ 운영체제의 μ—¬λŸ¬ μš΄μ˜μ²΄μ œκ°€ ν•˜λ“œμ›¨μ–΄ λ¦¬μ†ŒμŠ€λ₯Ό κ³΅μœ ν•  수 μžˆλ‹€.


예λ₯Ό λ“€μ–΄, VirtualBoxλŠ” 이 가상 ν™˜κ²½μ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•΄ 널리 μ‚¬μš©λ˜λŠ” 가상화 μ œν’ˆμ΄λ‹€. μ΄λŠ” 무료둜 μ œκ³΅λ˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€ μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ°œλ°œμžμ™€ IT κ΄€λ¦¬μžκ°€ 운영체제λ₯Ό μ‹ μ†ν•˜κ²Œ 배포할 수 μžˆλ‹€.

0개의 λŒ“κΈ€