study/devops

Docker

FYE 2023. 1. 10. 00:19

πŸ“Docker

λ©°μΉ κ°„ 배운 λ„μ»€μ—λŒ€ν•΄ λ‚˜λ§Œμ•Œμ•„λ³Όμˆ˜μžˆλŠ” μ–Έμ–΄λ‘œ μ •λ¦¬ν•˜λŠ” μ‹œκ°„μ„ κ°€μ Έλ΄…μ‹œλ‹€(!!)

- Dockerλž€ 무엇인가?

> λ„μ»€λŠ” λ¦¬λˆ…μŠ€μ˜ μ‘μš© ν”„λ‘œκ·Έλž¨λ“€μ„ ν”„λ‘œμ„ΈμŠ€ 격리 κΈ°μˆ λ“€μ„ μ‚¬μš©ν•΄ μ»¨ν…Œμ΄λ„ˆλ‘œ μ‹€ν–‰ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈμ΄λ‹€.

-docker hub = appstort

-image = program

-container = process

 

 ⇒ μ»¨ν…Œμ΄λ„ˆ 기술 , μ†Œν”„νŠΈμ›¨μ–΄ μˆ˜μ†‘ 즉 배포에 μ‚¬μš©ν•˜κΈ° μœ„ν•œ ..

Docker = μ‹€ν–‰ ν™˜κ²½μ— κ΅¬μ• λ°›μ§€ μ•Šκ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•  μˆ˜ μžˆλ‹€ 
    
μ»¨ν…Œμ΄λ„ˆ - λ„μ»€λΌλŠ” 기술 μœ„μ— 싀행될 수 μžˆλ„λ‘ λ§Œλ“  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μƒμž
    
이미지 - μ‹€ν–‰λ˜λŠ” λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλŠ” μ΄λ―Έμ§€λ‘œ λΆ€ν„° 생성
μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ성을 ν•¨κ»˜ 담아놓은 ν…œν”Œλ¦Ώ

→ μ΄μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ§Œλ“€ 수 있음 / 이미지λ₯Ό μ΄μš©ν•΄ μ—¬λŸ¬κ°€μ§€ μ»¨ν…Œμ΄λ„ˆ 생성 κ°€λŠ₯ 

= μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μˆ˜ν‰ ν™•μž₯ κ°€λŠ₯

 

λ ˆμ§€μŠ€νŠΈλ¦¬ - μ΄λ―Έμ§€λŠ” λ ˆμ§€μŠ€νŠΈλ¦¬μ— μ €μž₯
이미지 λ ˆμ§€μŠ€νŠΈλ¦¬ = Docker Hub, Amazon ECR
    

 

 

- λ„μ»€μ˜ μž₯점

 

 1. μ˜μ‘΄μ„± μΆ©λŒ λ¬Έμ œλ₯Ό ν•΄κ²° → μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ν™˜κ²½μ΄ κ²©λ¦¬λ˜μ–΄ μžˆκΈ° λ•Œλ¬Έμ— 
κ°€λŠ₯
    
ν”„λ‘œμ„ΈμŠ€ : νŠΉμ • μ»¨ν…Œμ΄λ„ˆμ—μ„œ μž‘λ™ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” 기본적으둜 κ·Έ 
μ»¨ν…Œμ΄λ„ˆ μ•ˆμ—μ„œλ§Œ μ•‘μ„ΈμŠ€ κ°€λŠ₯
    
λ„€νŠΈμ›Œν¬ : μ»¨ν…Œμ΄λ„ˆ ν•˜λ‚˜μ— ν•˜λ‚˜μ˜ ip μ£Όμ†Œ ν• λ‹Ή
    
νŒŒμΌμ‹œμŠ€ν…œ : μ»¨ν…Œμ΄λ„ˆ μ•ˆμ—μ„œ μ‚¬μš©λ˜λŠ” 파일 μ‹œμŠ€ν…œμ€ κ΅¬νšν™” λ˜μ–΄ 있음. λͺ…λ Ήμ΄λ‚˜ νŒŒμΌλ“±μ˜ μ—‘μ„ΈμŠ€ μ œν•œ κ°€λŠ₯
   

 

2. 개발과 배포 ν™˜κ²½ 일치
    
   μ™œ ν•„μš”ν•œκ°€? 
    
    →κ°œλ°œνŒ€μ—μ„œ μ—¬λŸ¬ κ°œλ°œμžκ°€ ν•˜λ‚˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€κΈ° μœ„ν•΄ λΉ„μŠ·ν•œ 
개발 ν™˜κ²½μ„ κ΅¬μΆ•함
    νŠΉμ • 버전 node.js, mysql등을 각자 본인의 μš΄μ˜μ²΄μ œμ— μ„€μΉ˜ν•˜κ³ , κ°œλ°œμ„ 
μ§„ν–‰ 
     λŸ°νƒ€μž„ ν™˜κ²½μ˜ 버전을 λΉ„μŠ·ν•˜κ²Œ λ§Œλ“€μ–΄μ•Όν•˜λ©° ν™˜κ²½ λ³€μˆ˜λ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 
맞게 κ΅¬μ„±ν•΄μ•Ό μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” κ²½μš°λ„ λ‹€λ°˜μ‚¬μž„ 
    
    → λ„컀λ₯Ό μ΄μš©ν•˜λ©΄ μ–΄λ– ν•œ μš΄μ˜μ²΄μ œλ“  μƒκ΄€μ—†μ΄ κ°™μ€ λͺ…λ Ήμ–΄λ‘œ μ„€μΉ˜ν•˜κ³  
μ‹€ν–‰ν•  μˆ˜ μžˆμŒ.
    
    ⇒ OS에 μƒκ΄€μ—†μ΄ μ¦‰μ‹œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ ν™˜κ²½μ„ λ§Œλ“€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
    
    ⇒ κ°œλ°œμ„ μ»¨ν…Œμ΄λ„ˆ μœ„μ—μ„œ μ§„ν–‰ν•  κ²½μš°, λͺ¨λ“  κ°œλ°œνŒ€μ΄ λ™μΌν•œ ν™˜κ²½ ν•˜μ— 
κ°œλ°œμ„ μ§„ν–‰ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
    
3. μ‰¬μš΄ μˆ˜ν‰ ν™•μž₯
    
    -
    
    κ°€μƒλ¨Έμ‹ (Virtual Machine)
    
    ν•˜λ‚˜μ˜ ν˜ΈμŠ€νŠΈ μ»΄ν“¨ν„° μœ„에 μ—¬λŸ¬ κ°œμ˜ λ…립적인 μ»΄ν“¨ν„°κ°€ μž‘동할 μˆ˜ μžˆκ²Œ 
ν•˜λŠ” 기술/ μ»¨ν…Œμ΄λ„ˆ 기술과 VM은 λ‘˜ λ‹€ ν”„λ‘œμ„ΈμŠ€, λ„€νŠΈμ›Œν¬, 파일 μ‹œμŠ€ν…œμ„ 격리할 수 
μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.
    
 -> μž‘λ™μ›λ¦¬λŠ” κ°™μ§€ μ•ŠμŒ!

 

 

Docker CLI

pull = docker hubμ—μ„œ imageλ₯Ό λ‹€μš΄ λ°›λŠ” 것

run = imageλ₯Ό μ‹€ν–‰μ‹œν‚€λŠ” 것

docker docsμ—μ„œ μ‚¬μš©ν•˜λŠ” 방법을 μžμ„Έν•˜κ²Œ μ•Œλ €μ€€λ‹€

https://docs.docker.com/engine/reference/commandline

[docker

docker: The base command for the Docker CLI.

docs.docker.com](https://docs.docker.com/engine/reference/commandline)