๐Ÿ“Œ ๊ณต๋ถ€ ๊ณ„๊ธฐ

์›ํ‹ฐ๋“œ ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์ด๋ฒˆ ๋‹ฌ ์ œ๊ณตํ•˜๋Š” ๊ฐ•์˜๋Š” Docker! Docker ๊ฐ•์˜๊ฐ€ ์ด 4๋ฒˆ ์ด๋ฃจ์–ด์ง€๋Š” ๋ฐ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

Docker ๊ฐ•์˜ 1 : 

 

๐Ÿ“์ด๋ก ํŽธ : ๋„์ปค ๊ฐœ๋…

* ๋„์ปค ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

 

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

๋„์ปค ์ด๋ก  ํŽธ์€ ์ด์ „ ๋„์ปค ๊ฐœ๋…์„ ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์— ๊ณ ๋ณ‘ํ˜„๋‹˜์˜ ๊ฐ•์˜๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด ์ •๋ฆฌ

 

Docker] ๊ฐœ๋…

๐Ÿ“Œ ๊ณต๋ถ€ ์ด์œ  ์‹ค์ „ ํ”„๋กœ์ ํŠธํ•˜๋ฉด์„œ ๋ฐฑ์—”๋“œ๋ฅผ ๊ณ ๋„ํ™”ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ๊ธฐ์ˆ ์— ๋„์ „ํ•ด๋ณด๊ณ  ์žˆ๋‹ค. Docker๋„ ๊ทธ ์ค‘ ํ•˜๋‚˜๋กœ, ์ด๋ฆ„๋งŒ ์•Œ๊ณ  ๋ญํ•˜๋Š” ๋…€์„์ธ์ง€ ์ „ํ˜€ ๋ชฐ๋ž๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์‹ค์Šต

littlezero48.tistory.com

 

 

๐Ÿ“์‹ค์ŠตํŽธ 1 : ๊ธฐ๋ณธ CLI

๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ Command-line reference (๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๊ณต๋ถ€ํ•˜์ž!)

 

Docker run reference

 

docs.docker.com

 

0๏ธโƒฃ ์‚ฌ์ „ ์ค€๋น„ 

๋”๋ณด๊ธฐ

 

๐Ÿ“ข ์ฐธ๊ณ  : ์ €๋Š” ์œˆ๋„์šฐ์— ๋ฆฌ๋ˆ…์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š”  WSL2 ์„ค์น˜ํ•œ ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ ํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

* ํŒŒ์›Œ์‰˜์—์„œ ๋ช…๋ น์–ด wsl ์ ‘์† or Ubuntu on Windows ์‹คํ–‰

* Docker Desktop ์‹คํ–‰๋„ ํ•ด์ค˜์•ผ ํ•จ

ํŒŒ์›Œ์‰˜ ๊ฒฝ์šฐ
Ubuntu on Windows ์‹คํ–‰

 


 

1๏ธโƒฃ ๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ 

- Docker hub๋กœ ๋ถ€ํ„ฐ httpd ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›์•„ ๋ณธ๋‹ค 


  
docker pull ์ด๋ฏธ์ง€์ด๋ฆ„

 

- pullํ•˜๊ณ  ๋‚˜์„œ ์ด๋ฏธ์ง€ ์กฐํšŒ ํ•˜๋ฉด ์ถ”๊ฐ€๋œ ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค

 


 

2๏ธโƒฃ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ 

- run ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

* ์ฃผ์˜ : httpd ๊ฐ™์€ ๊ฒฝ์šฐ run ์‹œํ‚ค๋ฉด ์ด ํ™”๋ฉด์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ํ™”๋ฉด์„ ๋ถ„ํ• ํ•ด์„œ ์ดํ›„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

(์•„๋‹ˆ๋ฉด d ์˜ต์…˜์„ ํ•จ๊ป˜ ์ฃผ์–ด ๋ฐ๋ชฌ๋ชจ๋“œ๋กœ run!)

๋”๋ณด๊ธฐ

โœ… ํ™”๋ฉด ๋ถ„ํ•  ๋ฐฉ๋ฒ•

 ๋ฐฉ๋ฒ•1) ํƒญ ํƒ€์ดํ‹€์—์„œ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ (๋‹จ, ์„ธ๋กœ -> ๊ฐ€๋กœ -> ์„ธ๋กœ -> ... ์‹์œผ๋กœ ๋ถ„ํ• )

 

๋ฐฉ๋ฒ•2) Ctrl + Shift + P ๋กœ ๋ช…๋ น ๋„๊ตฌ ๋ชจ์Œ์„ ์‹คํ–‰ํ•ด์„œ 

 

์ถ”๊ฐ€ํ•  ๋ฐฉํ–ฅ์„ ์„ ํƒํ•ด ํด๋ฆญ

 

โœ… ๊ฒฐ๊ณผ 

 

 

- ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ํ™•์ธ (์ด๋ฆ„ ์„ค์ •์„ ์•ˆํ•˜๋ฉด container name์€ ์ž„์˜๋กœ ๊ฒฐ์ •๋จ)


  
docker ps

 

- ์ด๋ฆ„์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ (secondContainer ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ)


  
docker run --name ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„ ์‚ฌ์šฉํ• ์ด๋ฏธ์ง€์ด๋ฆ„

์ง€์ •์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ ํ™•์ธ! ๊ทธ๋ฆฌ๊ณ  run์œผ๋กœ ํ•˜๋ฉด ๋ฌด์กฐ๊ฑด ์ƒˆ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

 


 

3๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ์˜ ํฌํŠธ์™€ ์—ฐ๋™์‹œํ‚ค๊ธฐ (Port Forwarding)[๊ฐ์ฃผ:1]

- ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์‹œ p ์˜ต์…˜์œผ๋กœ LocalPort : ContainerPort ๋กœ ํ•ด์„œ ํฌํŠธ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.


  
docker run -p ๋กœ์ปฌํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ --name ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„ ์‚ฌ์šฉํ• ์ด๋ฏธ์ง€์ด๋ฆ„

ํฌํŠธํฌ์›Œ๋”ฉ์ด ๋œ ๊ฑธ ํ™•์ธ
์•„ํŒŒ์น˜ ์„œ๋ฒ„(ํฌํŠธ80) ๊ธฐ๋ณธ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋น™๋œ ๊ฑธ ํ™•์ธ

 


 

4๏ธโƒฃ ์ด๋ฏธ์ง€ ๋‚ด๋ถ€์˜ ํŒŒ์ผ์„ ๊ต์ฒดํ•˜๊ธฐ 

- ๊ต์ฒดํ•˜๋ ค๋Š” ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ฐพ์•„๊ฐ

 

 - ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•ด VScode ์‹คํ–‰


  
code .

 

- ์œ„ ๊ฒฝ๋กœ์˜ index.html์„ ์„œ๋น™ํ•˜๋„๋ก ๊ต์ฒดํ•˜๊ณ  ์‹ถ๋‹ค! 

v ์˜ต์…˜์„ ํ†ตํ•ด์„œ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ ์ด๊ฒŒ ์ด๋ฏธ์ง€์˜ ํŒŒ์ผ์„ ํ˜ธ์ŠคํŠธ์˜ ํŒŒ์ผ๋กœ ๋ฎ์–ด์”Œ์šฐ๋Š” ๊ฑธ ๋งํ•œ๋‹ค. 

 

์—ฌ๊ธฐ์„œ -v HostPath : ContainerPath ๋กœ ์•ž์˜ HostPath๋Š” ๋ฎ์–ด์”Œ์šธ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ๋กœ๋กœ 

๋‚ด๊ฐ€ ๋ฎ์–ด์”Œ์šฐ๋ ค๋Š” ๊ฒฝ๋กœ๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์˜ ํ•˜๋Š˜์ƒ‰ ๊ธ€์ž ๋ถ€๋ถ„๊ณผ ๊ฐ™๋‹ค. 

ํ˜ธ์ŠคํŠธ ๊ฒฝ๋กœ ๋ฐฉ์‹ ์ ์šฉ์€ ์œˆ๋„์šฐ๋ž‘ ์šฐ๋ถ„ํˆฌ๋ž‘ ๋‹ค๋ฅด๋‹ˆ ์ฐธ๊ณ !

์šฐ๋ถ„ํˆฌ์˜ home/๊ณ„์ •/ ์•„๋ž˜๋ถ€ํ„ฐ ๊ฒฝ๋กœ ์‹œ์ž‘
์œˆ๋„์šฐ ๊ฒฝ์šฐ๋Š” ์ ˆ๋Œ€๊ฒฝ๋กœ
๋‹ค๋ฅธ index.html๋กœ ์ ์šฉ๋œ ๋ชจ์Šต

 


 

5๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ STOP 


  
docker stop ์ปจํ…Œ์ด๋„ˆID
docker stop ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„

์ปจํ…Œ์ด๋„ˆ ID๋กœ ์ •์ง€
์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์œผ๋กœ ์ •์ง€

 


 

6๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ START 

run ์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒŒ ์•„๋‹Œ ๋ฉˆ์ถค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ช…๋ น์–ด

 

- ์ผ๋‹จ docker ps๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋งŒ ์กฐํšŒํ–ˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์— -a ์˜ต์…˜ (all)์„ ๋ถ™์—ฌ ์‹คํ–‰์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ์ƒ์„ฑ๋˜์–ด์žˆ๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์กฐํšŒํ•œ๋‹ค.


  
docker ps -a

 

- ์‹คํ–‰

STATUS๋ฅผ ๋ณด๋ฉด Exited ์—์„œ Up์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉฐ ์‹คํ–‰


  
docker start ์ปจํ…Œ์ด๋„ˆID
docker start ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„

์ปจํ…Œ์ด๋„ˆ ID๋กœ ์‹คํ–‰
์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์œผ๋กœ ์‹คํ–‰

 


 

7๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ์ œ๊ฑฐ 

rm ๋ช…๋ น์–ด (remove) ๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ ์ œ๊ฑฐ 


  
docker rm ์ปจํ…Œ์ด๋„ˆID
docker rm ์ปจํ…Œ์ด๋„ˆ์ด๋ฆ„

๋‘˜๋‹ค ์ง€์šฐ๊ณ  ๋‚˜๋‹ˆ ps -a ์‹œ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ๋‚˜์˜ค๋Š” ๊ฒƒ ํ™•์ธ!

 

 

+ ์ฐธ๊ณ ๋กœ ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค. stop์œผ๋กœ ์ •์ง€ํ•˜๊ณ  ์ง€์šธ ๊ฒƒ

 


 

8๏ธโƒฃ ์ด๋ฏธ์ง€ ์ œ๊ฑฐ 

rmi ๋ช…๋ น์–ด (remove image) ๋ฅผ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€ ์ œ๊ฑฐ


  
docker rmi ์ด๋ฏธ์ง€์ด๋ฆ„

์ด๋ฏธ์ง€ ์‚ญ์ œ ํ™•์ธ

 

+ ์ด๋ฏธ์ง€ ์—ญ์‹œ ์ด ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์ง€์šธ ์ˆ˜ ์—†๋‹ค. ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ชจ๋‘ ์ง€์›Œ์•ผ ์ œ๊ฑฐ ๊ฐ€๋Šฅ

 

 

 

๐Ÿ“์‹ค์ŠตํŽธ 2 : ์ปค์Šคํ…€ ์ด๋ฏธ์ง€ ์ƒ์„ฑ

 

Dockerfile reference

 

docs.docker.com

 

์‹ค์Šต ๋‚ด์šฉ

httpd ์ด๋ฏธ์ง€๋ฅผ pull ๋ฐ›์•„ ์‹ค์Šต 1๋•Œ ์ฒ˜๋Ÿผ index.html์„ ๊ต์ฒดํ•˜๊ณ  ํฌํŠธํฌ์›Œ๋”ฉ๊นŒ์ง€ ํ•ด์„œ run ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ

 

1๏ธโƒฃ ๋„์ปค ํŒŒ์ผ ์ƒ์„ฑ 

๋„์ปคํŒŒ์ผ์€ yaml(์•ผ๋ฏˆ)ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค 

yamlํŒŒ์ผ ๋ช…๋ น์–ด๋Š” ARG(ํ™˜๊ฒฝ๋ณ€์ˆ˜), From(๋ฒ ์ด์Šค์ด๋ฏธ์ง€), CMD(๋ช…๋ น ์‹คํ–‰) ๋“ฑ์ด ์žˆ๋Š”๋ฐ ์œ„์˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋” ๋งŽ์ด ์žˆ๋‹ค. ์ด๋ฒˆ์€ ๊ฐ„๋žตํ•˜๊ฒŒ 3๊ฐ€์ง€ ๋ช…๋ น์–ด ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์Šต!

 

* ๋„์ปคํŒŒ์ผ

FROM : httpd:latest ์ด๋ฏธ์ง€๋ฅผ ๋ฒ ์ด์Šค๋กœ

COPY : host ํ˜„์žฌ ๊ฒฝ๋กœ์˜ index.html ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ์˜ /usr/local/apache2/htdocs/index.html์˜ ๊ฒฝ๋กœ๋กœ ๋ณต์‚ฌํ•œ๋‹ค

EXPOSE : ๊ทธ๋ฆฌ๊ณ  80ํฌํŠธ๋ฅผ ์—ฐ๋‹ค

 

 


 

2๏ธโƒฃ ๋„์ปค ์ด๋ฏธ์ง€ ์ƒ์„ฑ 

build ๋ช…๋ น์–ด๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ด๋ฏธ์ง€๋Š” -t ์˜ต์…˜ (tag)์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ์ด๋ฆ„์ด ์„ค์ •๋˜๊ณ  

๊ฒฝ๋กœ ๊ฒฝ์šฐ ํ˜„์žฌ ๊ฒฝ๋กœ๋กœ ๋ถ€ํ„ฐ์˜ ์œ„์น˜๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด๋ฏธ ๊ทธ ์œ„์น˜์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— . ์œผ๋กœ ํ‘œํ˜„


  
docker build -t ์ด๋ฏธ์ง€์ด๋ฆ„ ๊ฒฝ๋กœ

๋ณด๋ฉด ์„ค์ •ํ•œ ํƒœ๊ทธ๋กœ ์ด๋ฏธ์ง€๊ฐ€ ์ƒ์„ฑ๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 


3๏ธโƒฃ ์ปค์Šคํ…€ํ•œ ์ด๋ฏธ์ง€ ์‹คํ–‰ 

ํฌํŠธํฌ์›Œ๋”ฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰
ํ™•์ธ

๋ณผ๋ฅจ ๋งˆ์šดํŠธ ๊ณผ์ •์—†์ด ๋ฐ”๋กœ ์ปค์Šคํ…€ index.html๋กœ ์ ์šฉ๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋Ÿฐ์‹์œผ๋กœ ๋งŒ๋“  ๊ฒƒ์„ docker hub์— ์˜ฌ๋ ค ์–ธ์ œ๋“  ๋‹ค์šด๋ฐ›์•„ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 


์ฒซ๋ฒˆ์งธ ๊ฐ•์˜ ๋


  1. ํฌํŠธํฌ์›Œ๋”ฉ์ด๋ž€?
    ์™ธ๋ถ€ ์ฃผ์†Œ์™€ ๋‚ด๋ถ€ ์ฃผ์†Œ๋ฅผ ์ด์–ด์ฃผ๋Š” ๊ฒƒ [๋ณธ๋ฌธ์œผ๋กœ]

+ Recent posts