System ์ž‘์—…์‹ค/Docker

[docker] Portainer๋ฅผ ์ด์šฉํ•œ nginx ์„ค์น˜

์ฃผ๋‹ˆ์“ฐ๐Ÿง‘‍๐Ÿ’ป 2021. 7. 14. 03:46
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”? ์ฃผ๋‹ˆํ•˜๋ž‘ ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์ง€๋‚œ๋ฒˆ  Ubuntu 20.04์— ์„ค์น˜ํ•œ Docker์™€ Portainer๋ฅผ ํ†ตํ•ด nginx๋ฅผ ์„ค์น˜ ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๋งŒ์•ฝ Docker ์„ค์น˜์™€ Portainer๊ฐ€ ์•„์ง ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š์œผ์…จ๋‹ค๋ฉด? 'Docker์™€ Portainer ์„ค์น˜'์— ๊ด€์‹ฌ์„ ์ฃผ์„ธ์š”!

๋ฐ”๋กœ ์‹œ์ž‘ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 


 

 

 

โœ” ๋ชฉ์ฐจ

VMWare๋ฅผ ํ†ตํ•œ Ubuntu 20.04 LTS ์„ค์น˜

Docker์™€ Portainer ์„ค์น˜

Portainer๋ฅผ ์ด์šฉํ•œ nginx ์„ค์น˜

[docker] Portainer๋ฅผ ์ด์šฉํ•œ tomcat ์„ค์น˜

[docker] Portainer๋ฅผ ์ด์šฉํ•œ Maria DB ์„ค์น˜

 

 

 

 

 

๐Ÿ“Œ nginx ์„ค์น˜


   

    ๐Ÿ“ Volume ์ƒ์„ฑ

 

[ volume ] ์ด๋ผ๋Š” Menu๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”!

 

 

[ Add volume ] ์„ ํด๋ฆญํ•ด์„œ ์ƒˆ๋กœ์šด Volume์„ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด์—์š”!

 

 

Volume ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋ฅผ ํ†ตํ•ด Name๋ž€์— ์›ํ•˜๋Š” Volume ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , [ Create the Volume ]์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

์ฃผ๋‹ˆํ•˜๋ž‘์€ nginx๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— [ junyharang_nginx ] ๋ผ๋Š” ์ด๋ฆ„์„ ๋ถ™ํ˜€ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค!

 

 

๋ฐฉ๊ธˆ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ์ƒˆ๋กœ์šด Volume์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”!

 


 

 

     ๐Ÿ“ nginx Container ์ƒ์„ฑ

 

์ขŒ์ธก Menu์—์„œ [ Container ]๋ฅผ ๋ˆŒ๋Ÿฌ Container ์„ค์ •์ฐฝ์œผ๋กœ ์ด๋™ ํ•˜๋Š” ๊ฒƒ์ด์—์š”!

๊ทธ๋Ÿฐ ๋’ค [ Add Container ]๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ์šด Container๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ํ• ๊ฒŒ์š”!

Docker์—์„œ ๋งํ•˜๋Š” Container๋ผ๋Š” ๊ฒƒ์€ VM Ware๋‚˜, Hyper-V, Vitual BOX ๋“ฑ ๊ฐ€์ƒ ๋จธ์‹  ํ”„๋กœ๊ทธ๋žจ์—์„œ ์นญํ•˜๋Š” Virtual Machine ํ˜น์€ Guest OS๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฐ€์ƒ ์ปดํ“จํ„ฐ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ด์—์š”.

 

ํ•˜์ง€๋งŒ, ์ฐจ์ด์ ์€ ์•„๋ž˜์™€ ๊ฐ™์ด OS๊ฐ€ HOST OS์œ„์— ๋˜ ์„ค์น˜๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ธ ๊ฒƒ์ด์—์š”!

 

 

         ๐Ÿ‘‰ Container Name์œผ๋กœ [ nginx ]๋ผ๊ณ  ์ž…๋ ฅํ•˜๊ณ , image๋ž€์— [ nginx/server ] ์ž…๋ ฅ

              ๋งŒ์•ฝ ํŠน์ • ๋ฒ„์ „์„ ์›ํ•œ๋‹ค๋ฉด [ nginx/server:10.3 ] ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ

 

 

publish a new network port๋ฅผ ํ†ตํ•ด host (Ubuntu)์™€ Container์˜ Well-Known Port ์ค‘ http์˜ Port Number 80์„ ์ž…๋ ฅ ํ•ด ์ค๋‹ˆ๋‹ค.

 

 

 

์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ [ map additional volume ] ์„ ์—ฐ์†์œผ๋กœ 3๋ฒˆ ๋”ฑ!๋”ฑ!๋”ฑ! ํด๋ฆญ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”!

 

๊ทธ๋Ÿฐ ๋’ค ์œ„์™€ ๊ฐ™์ด Container์™€ nginx Server๋กœ ์‚ฌ์šฉ๋  Container์˜ Volume์„ Mapping ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

[ Bind ] ๋ฅผ ๋ˆŒ์–ด ์ค˜์•ผ host๋กœ ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ˆ ์ฐธ๊ณ  ํ•ด ์ฃผ์‹œ๊ณ , junyharang์ด๋ผ๊ณ  ์จ์ ธ ์žˆ๋Š” ๋ถ€๋ถ„์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ubuntu์— ์ ‘์†ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ •๋ช…์„ ์ž…๋ ฅ ํ•ด ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”!

๋˜๋„๋ก root๋Š” ๋ณด์•ˆ์ƒ์˜ ๋ฌธ์ œ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

 

์šฐ๋ฆฌ๊ฐ€ ์œ„์—์„œ [ host ]๋ž€์— ์ž…๋ ฅํ•œ directory๋Š” ์•„์ง ๋งŒ๋“ค์ง€ ์•Š์€ ๊ฒƒ๋“ค์ธ ๊ฒƒ์ด์—์š”.

๋”ฐ๋ผ์„œ Ubuntu์—์„œ ์ง์ ‘ ํ•ด๋‹น dirctory๋“ค์„ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ต๋‹ˆ๋‹ค!

 

 

junyharang@junyharang-virtual-machine:/docker/portainer$ mkdir -p /home/junyharang/app/nginx
junyharang@junyharang-virtual-machine:/docker/portainer$ cd /home/junyharang/app/nginx/

 

portainer์—์„œ ์ž…๋ ฅํ–ˆ๋˜๋Œ€๋กœ directory๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ๊ณ , ๊ทธ ์œ„์น˜๋กœ ์ด๋™์„ ํ•ด์ค๋‹ˆ๋‹ค.

 

 

 

vim์œผ๋กœ ๋นˆ ํŒŒ์ผ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ vim์ด ์—†๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋Ÿด ๋• ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”!

์ฐธ๊ณ ๋กœ vim ์™ธ์— nano, vi์™€ ๊ฐ™์€ Editer๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค!

junyharang@junyharang-virtual-machine:~/app/nginx$ sudo apt install vim

 

 

๊ทธ๋Ÿฐ ๋’ค ์ฃผ๋‹ˆํ•˜๋ž‘์€ vim์„ ์‚ฌ์šฉํ•ด์„œ ์œ„์™€ ๊ฐ™์ด ๋นˆ file์„ ๋งŒ๋“ค์–ด ์ฃผ๊ณ ,

mkdir์„ ํ†ตํ•ด html ์ด๋ผ๋Š” directory๋ฅผ ์ถ”๊ฐ€๋กœ ๋งŒ๋“  ๊ฒƒ์ด์—์š”.

 

 

vim์— ๋“ค์–ด์˜ค๋ฉด ๋ฐ”๋กœ [ esc ] Key๋ฅผ ๋ˆ„๋ฅด๊ณ , [ : ] ์ฝœ๋ก ์„ ๋ˆŒ๋Ÿฌ์ค€ ๋’ค wq๋ฅผ ์ž…๋ ฅํ•˜๊ณ , Enter๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋ ์ž…๋‹ˆ๋‹ค!

 

 

๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๊ฐ€ portainer์—์„œ ์„ค์ •ํ–ˆ๋˜ file ํ˜น์€ directory๋“ค์ด ๋ชจ๋‘ ๋งŒ๋“ค์–ด์กŒ๋„ค์š”!

 

 

์ด์ œ [ add environment variable ] ์„ ๋‘๋ฒˆ ๋”ฑ!๋”ฑ! ๋ˆŒ๋Ÿฌ์ฃผ์–ด ์œ„์™€ ๊ฐ™์ด PORT์™€ HOST๋ฅผ ์„ค์ • ํ•ด ์ค๋‹ˆ๋‹ค!

 

 

๋งˆ์ง€๋ง‰์œผ๋กœ [ Deply the container ] ๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ๋Š” ๊ฒƒ์ด์—์š”!

 

 

์œ„์™€ ๊ฐ™์ด Container List์— ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๊ทธ๋Ÿผ ์ด์ œ ์›น ์‚ฌ์ดํŠธ๋กœ ์ ‘์† ํ•ด ๋ณผ๊นŒ์š”?

 

์งœ์ž”! ์ •์ƒ์ ์œผ๋กœ nginx๋ผ๋Š” Web Service๊ฐ€ ๊ตฌ๋™๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”!

์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๋˜์—ˆ๋„ค์š”!

 

ํ•˜์ง€๋งŒ, html Directory๋ฅผ Docker Container Path ๋ฐ–์œผ๋กœ ๋นผ์„œ Host ์ชฝ์— ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Web Server๋กœ์จ์˜ ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ฒƒ์ด์—์š”.

์™œ๋ƒํ•˜๋ฉด? ๊ด€๋ฆฌ์ž๊ฐ€ ์ง์ ‘ html File์„ Uploadํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด์ฃ !

 

 

Portainer์—์„œ nginx Container์˜ Console ํ•ญ๋ชฉ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด

์œ„์˜ ๋นจ๊ฐ„ ๋„ค๋ชจ์นธ ํ‘œ์‹œ๋ฅผ ํด๋ฆญ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—์š”. 

์ด์ œ๋ถ€ํ„ฐ html Directory๋ฅผ Servingํ•  ๊ฒƒ์ด๊ธฐ์— Default html File๋“ค์„ ๋ชจ๋‘ Copyํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

 

 

Unix / Linux์—๋Š” ๋งŽ์€ Shell์ด ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” bash Shell๋“ค ์จ๋ณด๋„๋ก ํ•  ๊ฒƒ์ด์—์š”!

์ฐธ๊ณ ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์—ฌํƒœ๊ป ์‚ฌ์šฉํ–ˆ๋˜ Ubuntu๋„ Bash Shell์„ ์“ฐ๊ณ  ์žˆ์—ˆ๋‹ต๋‹ˆ๋‹ค!

 

 

์œ„์™€ ๊ฐ™์ด ์ ‘์†์ด ์•ˆ๋˜๋Š” ๋ถ„๋“ค์€ ๋‹ค๋ฅธ Menu๋กœ ๊ฐ”๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค!

 

 

root@06126c3a38d6:/# cp -R /usr/share/nginx/html/* /temp-nginx/

 

 

 

์œ„์™€ ๊ฐ™์ด ์ž˜ ๋ณต์‚ฌ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„ค์š”!

 

 

์ด์ œ Disconnect๋ฅผ ๋ˆŒ๋Ÿฌ ๋น ์ ธ๋‚˜๊ฐ€ ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

 

๊ทธ๋Ÿฐ ๋’ค ๋‹ค์‹œ [ Containers ] Menu๋กœ ๋“ค์–ด์™€ ์ฃผ์‹œ๋ฉด ๋˜์š”!

 

nginx Container Name์„ ํด๋ฆญ ํ•ด ์ฃผ์‹  ๋’ค

 

[ Duplicate / Edit ]์„ ๋ˆŒ๋Ÿฌ Image๋ฅผ ๋‹ค์‹œ ์„ค์ • ํ•ด ์ฃผ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

 

๋ฐฉ๊ธˆ ์šฐ๋ฆฌ๊ฐ€ html Directory ๊ด€๋ จํ•ด์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด

ํ•ด๋‹น ์‚ฌํ•ญ์„ ๋ณ€๊ฒฝํ•ด ์ฃผ๋„๋ก ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

 

๊ทธ๋Ÿฐ ๋’ค ๋‹ค์‹œ [ Deploy the container ]๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์‹œ๋ฉด?

 

 

[ Replace ] ๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”!

 

 

 

์—ญ์‹œ ์ •์ƒ์ ์œผ๋กœ nginx Web Service๊ฐ€ ์ž‘๋™ ์ค‘์— ์žˆ๋„ค์š”!

 

Ubuntu๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ IP๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ด๋ ‡๊ฒŒ Browser๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค!

 

์ด์ œ๋ถ€ํ„ฐ๋Š” html File์„ Host (Ubunt OS) Path /home/{User Name}/app/nginx/html ๊ฒฝ๋กœ์— Uploadํ•ด์„œ Web Server๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค!

 

์œ„ html Copy ์ž‘์—…์„ ํ•œ ์ด์œ ๋Š” Container Image๋งˆ๋‹ค ๋‹ค๋ฅด๊ธด ํ•˜์ง€๋งŒ, ๊ธฐ๋ณธ ์„ค์ •์„ HOST Directory๋กœ ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์ƒ์„ฑ ํ•ด ์ฃผ๋Š” Container๋„ ์žˆ์ง€๋งŒ, nginx Image์˜ ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณต์‚ฌ ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝ ํ•ด ์ฃผ๋Š” ์ด์œ ๋Š” Docker Image์˜ ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์ด ์•„๋‹Œ User๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ์ธ ๊ฒƒ์ด์—์š”.

Container์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ๋“ค๋งŒ ์กด์žฌํ•˜๊ณ , ์‹ค์ œ ์„ค์ • ํŒŒ์ผ์ด๋‚˜, html ๊ฐ™์€ ๊ฒฝ๋กœ๋Š” Host ์ธก์œผ๋กœ

๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด Docker์˜ ๋˜๋‹ค๋ฅธ Point์ธ ๊ฒƒ์ด์—์š”!

 

 


 

์ฃผ๋‹ˆํ•˜๋ž‘์˜ ๊ธ€์ด ๋งˆ์Œ์— ๋“œ์…จ๋‚˜์š”? ๊ตฌ๋…๊ณผ ๊ณต๊ฐ! ๊ทธ๋ฆฌ๊ณ , ๋Œ“๊ธ€์€ ์ฃผ๋‹ˆํ•˜๋ž‘์—๊ฒŒ ๋งŽ์€ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

 

728x90
๋ฐ˜์‘ํ˜•