๊ฐœ๋ฐœ Code/๋ถ€๋ก Supplement

[Supplement][Docker] Docker ๊ฐœ๋… ์ •๋ฆฌ

5hr1rnp 2025. 2. 7. 23:56
๋ฐ˜์‘ํ˜•

๋„์ปค(Docker)๋ž€?


๋„์ปค(Docker)๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์–ด๋””์„œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. ๊ธฐ์กด์˜ ๊ฐ€์ƒ ๋จธ์‹ (VM)๊ณผ ๋‹ฌ๋ฆฌ ์šด์˜์ฒด์ œ ์ „์ฒด๋ฅผ ๊ฐ€์ƒํ™”ํ•˜์ง€ ์•Š๊ณ , ํ˜ธ์ŠคํŠธ OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜๋ฉด์„œ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.


๋„์ปค์˜ ์ฃผ์š” ๊ฐœ๋…


1. ์ปจํ…Œ์ด๋„ˆ(Container)

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ํฌํ•จํ•˜๋Š” ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„๋กœ, ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์˜์กด์„ฑ์„ ํ•จ๊ป˜ ํŒจํ‚ค์ง•ํ•˜์—ฌ ์ผ๊ด€๋œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

2. ์ด๋ฏธ์ง€(Image)

  • ์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์„ค์ • ํŒŒ์ผ ๋“ฑ)๋ฅผ ํฌํ•จํ•˜๋Š” ์ฝ๊ธฐ ์ „์šฉ ํ…œํ”Œ๋ฆฟ์ž„
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋จ

3. ๋„์ปคํŒŒ์ผ(Dockerfile)

  • ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ, ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •, ์‹คํ–‰ ๋ช…๋ น์–ด ๋“ฑ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œ

4. ๋„์ปค ํ—ˆ๋ธŒ(Docker Hub)

  • ๋„์ปค ์ด๋ฏธ์ง€์˜ ์ €์žฅ์†Œ๋กœ, ๊ณต์‹ ๋ฐ ์‚ฌ์šฉ์ž ์ƒ์„ฑ ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Œ
  • ๋„์ปค ํ—ˆ๋ธŒ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Œ

5. ๋„์ปค ์ปดํฌ์ฆˆ(Docker Compose)

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋กœ, docker-compose.yml ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

728x90
๋ฐ˜์‘ํ˜•

๋„์ปค์˜ ์žฅ์ 


  1. ํ™˜๊ฒฝ ์ผ๊ด€์„ฑ ์œ ์ง€: ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ™˜๊ฒฝ ์ฐจ์ด๋กœ ์ธํ•œ ๋ฌธ์ œ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Œ
  2. ๋น ๋ฅธ ๋ฐฐํฌ ๋ฐ ํ™•์žฅ์„ฑ: ๊ฐ€๋ณ๊ณ  ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด๋ฉฐ, ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Œ
  3. ๋ฆฌ์†Œ์Šค ํšจ์œจ์„ฑ: ๊ฐ€์ƒ ๋จธ์‹ ๋ณด๋‹ค ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ˜ธ์ŠคํŠธ OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  4. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ์ง€์›: ๊ฐœ๋ณ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ์— ์ ํ•ฉํ•จ

๋„์ปค ๊ธฐ๋ณธ ๋ช…๋ น์–ด


  • ๋„์ปค ๋ฒ„์ „ ํ™•์ธ
# sudo docker --version
docker --version
  • ๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ
# sudo docker pul [์ด๋ฏธ์ง€์ด๋ฆ„]
docker pull [์ด๋ฏธ์ง€์ด๋ฆ„]
  • ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰
# sudo docker run -d -p 8080:80 --name [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„] [์ด๋ฏธ์ง€์ด๋ฆ„]
docker run -d -p 8080:80 --name [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„] [์ด๋ฏธ์ง€์ด๋ฆ„]
  • ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ํ™•์ธ
# sudo docker ps
docker ps

# sudo docker ps -a
docker ps -a
  • ์ปจํ…Œ์ด๋„ˆ ์ค‘์ง€ ๋ฐ ์‚ญ์ œ
# sudo docker stop [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„]
docker stop [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„]

# sudo docker rm [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„]
docker rm [์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„]
  • ์ด๋ฏธ์ง€ ์‚ญ์ œ
# sudo docker rmi [์ด๋ฏธ์ง€์ด๋ฆ„]
docker rmi [์ด๋ฏธ์ง€์ด๋ฆ„]
๋ฐ˜์‘ํ˜•