๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Container/Docker

[Docker] ๋„์ปค๋ž€, ๊ทธ๋ฆฌ๊ณ  ๋„์ปค ์—”์ง„์˜ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ

๋ฐ˜์‘ํ˜•

๐Ÿ”Š ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์‹œ์ž‘ํ•˜์„ธ์š”! ๋„์ปค/์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ์ ์„ ์ฝ๊ณ  ๊ฐœ์ธ์ ์ธ ๋ชฉ์  ํ•˜์— ์ž‘์„ฑ๋˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ํฌ์ŠคํŒ…์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์ž๋ฃŒ๋Š” ์ œ๊ฐ€ ์ง์ ‘ ์žฌ๊ตฌ์„ฑํ•˜์˜€์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์„ ์‹œ์ž‘์œผ๋กœ ๋„์ปค์™€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ด€๋ จ ๊ฐœ๋ฐœ ์„œ์ ์„ ํ†ตํ•ด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๊นŠ์ด ์žˆ๋Š” ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋„์ปค ๊ด€๋ จํ•ด์„œ๋Š” ์ด์ „์— ์ƒํ™œ์ฝ”๋”ฉ ์ด๊ณ ์ž‰๋‹˜์˜ ๊ธฐ์ดˆ ๊ฐ•์˜๋งŒ ๊ณต๋ถ€ํ–ˆ์—ˆ๊ณ  ์ œ๋Œ€๋กœ ๋™์ž‘ ์›๋ฆฌ์™€ ๊นŠ์ด ์žˆ๋Š” ๊ณต๋ถ€๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค. ์ตœ๊ทผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ธํ”„๋ผ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํŠธ๋ Œ๋“œ๋กœ ๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ ๋„์ปค์™€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ์–ธ์  ๊ฐ€๋Š” ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ ์ฒซ ๋ฒˆ์งธ ์ฃผ์ œ๋กœ ๋„์ปค๋ž€ ์–ด๋–ค ๊ฐœ๋…์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ๋„์ปค๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์ฒด์ด์ž ํ•ต์‹ฌ์ธ ๋„์ปค ์—”์ง„์˜ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

 

Docker


1. ๊ฐ€์ƒ๋จธ์‹ ๊ณผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ

์šฐ์„  ๋„์ปค๋ž€, ๋ฆฌ๋ˆ…์Šค ์ปจํ…Œ์ด๋„ˆ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆ๋กœ์„œ ์ข€ ๋” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋‹ค. ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ๋Š” OpenVZ, LXC, cri-o ๋“ฑ์ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์—์„œ๋Š” ๋„์ปค๊ฐ€ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก์•„ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๋„์ปค๋Š” Go์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค. ๋„์ปค์™€ ๊ด€๋ จ๋œ ์ œํ’ˆ์ด์ž ํ”„๋กœ์ ํŠธ๋กœ๋Š” ๋„์ปค ์ปดํฌ์ฆˆ, ๋„์ปค ํ—ˆ๋ธŒ, ๋งฅ์ด๋‚˜ ์œˆ๋„์šฐ์—์„œ ๋„์ปค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” Docker for Desktop ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ '๋„์ปค'๋ผ๊ณ  ํ•˜๋ฉด ๋„์ปค ์—”์ง„ ํ˜น์€ ๋„์ปค์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋„์ปค ์—”์ง„์ด๋ž€, ๋„์ปค๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ์ฒด๋กœ, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋„์ปค ์ปดํฌ์ฆˆ๋‚˜ ๋„์ปค ํ—ˆ๋ธŒ ๋“ฑ์˜ ๋„์ปค ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋“ค์€ ์ด ๋„์ปค ์—”์ง„์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ž ์ˆ˜๋‹จ์— ๋ถˆ๊ณผํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๋ฐฐ์›Œ์•ผํ•  ๊ธฐ์ดˆ์ด์ž ํ•ต์‹ฌ์ธ ๋ถ€๋ถ„์€ ๋ฐ”๋กœ ๋„์ปค ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋„์ปค๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋“ฑ์žฅํ•˜๊ธฐ ์ด์ „์—๋Š” ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ์„๊นŒ? ๋ฐ”๋กœ ๊ฐ€์ƒ๋จธ์‹ ์„ ์ด์šฉํ–ˆ๋‹ค. ๋จผ์ € ์•„๋ž˜ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์€ ํ•˜๋‚˜์˜ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋ฒ„์— A, B๋ผ๋Š” ๋‘๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ด์šฉํ•  ๋•Œ์™€ ๋„์ปค๋ฅผ ์ด์šฉํ•  ๋•Œ์˜ ๊ตฌ์กฐ ์ฐจ์ด์ด๋‹ค.

 

๊ฐ€์ƒ๋จธ์‹  vs ๋„์ปค ์ปจํ…Œ์ด๋„ˆ


๋จผ์ € ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๋„์ปค ๋‘˜๋‹ค ๋ฌผ๋ฆฌ์ ์ธ 1๊ฐœ์˜ ์„œ๋ฒ„์™€ ๊ทธ ์„œ๋ฒ„์— ํ• ๋‹น๋˜์–ด ์žˆ๋Š” Host OS๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ Host OS๋ž€, ์„œ๋ฒ„๋ฅผ ๋ถ€ํŒ…ํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์šด์˜์ฒด์ œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ด์ œ ์™ผ์ชฝ์˜ ๊ฐ€์ƒ ๋จธ์‹  ๊ตฌ์กฐ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด์ž. ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ๋Š” ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ์ด์šฉํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์šด์˜์ฒด์ œ๋ฅผ ์˜ฌ๋ ค๋†“๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ฌ๋ ค๋†“์€ ํ•˜๋‚˜์˜ ์šด์˜์ฒด์ œ ๋‹น ํ•˜๋‚˜์˜ ๊ฐ€์ƒ๋จธ์‹ (VM)์ด ํ• ๋‹น๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๊ฐ€์ƒ๋จธ์‹  ์•ˆ์— ์šฐ๋ถ„ํˆฌ๋‚˜ CentOS์™€ ๊ฐ™์€ ์šด์˜์ฒด์ œ๋“ค์ด ์„ค์น˜๋œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ๋Š” 2๊ฐœ์˜ VM์ด ์˜ฌ๋ ค์ ธ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜์ดํผ๋ฐ”์ด์ €์— ์˜ํ•ด ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ์šด์˜์ฒด์ œ๋ฅผ GuestOS ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ GuestOS๋Š” ์„œ๋กœ ์™„์ „ํžˆ ๋…๋ฆฝ๋œ ๊ณต๊ฐ„๊ณผ ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ€์ƒํ™” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํˆด๋กœ๋Š” ๋ฆฌ๋ˆ…์Šค๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ์‚ฌ์šฉํ•ด๋ณด์•˜๋˜ VirtualBox, VMware ๋“ฑ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ํ˜ธ์ŠคํŠธ์— ๋น„ํ•ด ์„ฑ๋Šฅ์˜ ์†์‹ค์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด GuestOS๋“ค์ด ๋„ˆ๋ฌด ์šฉ๋Ÿ‰์ด ์ปค ๋ฌด๊ฒ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•˜๋‚˜์˜ VM ๋‹น GuestOS๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋„ ๋“ฑ์„ ์ „๋ถ€ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‹ฌ์ง€์–ด ์šฉ๋Ÿ‰์ด ์ˆ˜ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ(GB)๊นŒ์ง€ ๋‹ฌํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋Š” GuestOS์—๋‹ค๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋”ํ•˜๋ฉด ๊ทธ ์šฉ๋Ÿ‰์€ ๋” ์ปค์งˆ ๊ฒƒ์ด๊ณ , ์ด๋ ‡๊ฒŒ ๋šฑ๋šฑํ•ด์ง„(?) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ธฐ๋ž€ ๋ถ€๋‹ด์Šค๋Ÿฌ์šด ๋‹จ์ ์ด ์žˆ๋‹ค.

๋ฐ˜๋ฉด์— ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์˜ ๋„์ปค๋Š” ์ „์ฒด ์šด์˜์ฒด์ œ๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋‹จ์ง€ Host OS ์œ„์—์„œ ํ”„๋กœ์„ธ์Šค ๋‹จ์œ„์˜ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ฌ์šฉํ•  ๋•Œ์™€ ๋‹ฌ๋ฆฌ ์„ฑ๋Šฅ ์†์‹ค์ด ๊ฑฐ์˜ ์—†๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ์— ํ•„์š”ํ•œ ์ปค๋„์€ Host OS์˜ ์ปค๋„์„ ๊ณต์œ ํ•ด ์‚ฌ์šฉํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—๋Š” ๋‹จ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์‹คํ–‰ ํŒŒ์ผ๋งŒ ๋“ค์–ด์žˆ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ปจํ…Œ์ด๋„ˆ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋„ฃ์–ด์ค€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŒŒ์ผ๋“ค์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ '์ด๋ฏธ์ง€(image)' ๋ผ๊ณ  ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ๋„ ์ด๋ฏธ์ง€๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์šฐ๋ถ„ํˆฌ๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๋์— ํ™•์žฅ์ž๊ฐ€ .iso๋กœ ๋˜์–ด ์žˆ๋Š” ์šฐ๋ถ„ํˆฌ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ๋„ ์ด๋ฏธ์ง€๋ผ๊ณ  ํ•œ๋‹ค. ์–ด์จŒ๊ฑด ๋„์ปค๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ด๋ฏธ์ง€์™€๋Š” ๋‹ฌ๋ฆฌ ์ปค๋„์„ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„(๋„์ปค๋Š” Host OS ์ปค๋„์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ) ์šฉ๋Ÿ‰๋„ ํฌ์ง€ ์•Š๋‹ค. ๋˜ํ•œ ๋„์ปค๋Š” ์ด๋ฏธ์ง€ ๋‚ด์šฉ์„ ๋ ˆ์ด์–ด ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•˜๋ฉฐ ์ค‘๋ณต๋˜๋Š” ๋ ˆ์ด์–ด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ์™€ ๋ฐ˜๋Œ€ ๊ตฌ์กฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋†€๋ฆฌ์Šค(Monolith) ๊ตฌ์กฐ๊ฐ€ ์žˆ๋‹ค. ๋ชจ๋†€๋ฆฌ์Šค ๊ตฌ์กฐ๋ž€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋กœ์ง์„ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํ”„๋กœ๊ทธ๋žจ) ๋‚ด์—์„œ ํ•œ ๋ฒˆ์— ๊ตฌ๋™์‹œํ‚ค๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. ์†Œ๊ทœ๋ชจ ์„œ๋น„์Šค์—๋Š” ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๊ฐ€ ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„œ๋น„์Šค๊ฐ€ ์ปค์ง์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๋„ ๋” ๋งŽ์ด ์ƒ๊ธฐ๊ณ  ๋ณต์žกํ•ด์ง€๋ฉด ์ด๋Ÿฌํ•œ ๋ชจ๋†€๋ฆฌ์Šค ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ์ค„์–ด๋“ค ๊ฐ€๋Šฅ์„ฑ์ด ์ปค์ง„๋‹ค. ๋ฐ˜๋ฉด์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ ๊ฐ๊ฐ ๋…๋ฆฝ์‹œ์ผœ ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๋ณ€ํ™”์— ๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ชจ๋“ˆ์˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ช‡ ์ดˆ ๋‚ด๋กœ ์ƒ์„ฑ, ์‹œ์ž‘์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ ๋ชจ๋“ˆ ๊ฐ„์— ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„์ปค๊ฐ€ ๊ทธ๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฅ˜ ์ค‘ ๊ฐ€์žฅ ์ธ๊ธฐ๊ฐ€ ์žˆ๋‹ค. 

 

๋ชจ๋†€๋ฆฌ์Šค vs ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ

 

์ด๋ ‡๊ฒŒ ๋„์ปค๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“œ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋„์ปค ์Šค์›œ ๋ชจ๋“œ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋“ฑ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ๊ทธ๋Ÿผ ๋„์ปค๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ๋‹ค์Œ ๋ชฉ์ฐจ๋ถ€ํ„ฐ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋„์ปค ์—”์ง„์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ธ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๊ทธ์— ์•ž์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋„์ปค ์—”์ง„์„ ๋ฆฌ๋ˆ…์Šค์—์„œ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž. ๋งฅ๊ณผ ์œˆ๋„์šฐ์—์„œ๋„ Docker for Desktop์„ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋„์ปค ์ž์ฒด๊ฐ€ ๋ฆฌ๋ˆ…์Šค์˜ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋˜๋„๋ก ์ด๋ฉด ๋ฆฌ๋ˆ…์Šค์—์„œ ๋‹ค๋ฃจ์–ด ๋ณด๋Š” ๊ฒƒ์„ ์ฑ…์—์„  ๊ถŒ์žฅํ•œ๋‹ค. ์‹ค์ œ๋กœ ์„œ๋น„์Šค์—์„œ ์šด์˜๋˜๋Š” ์„œ๋ฒ„๋Š” ๋ชจ๋‘ ๋ฆฌ๋ˆ…์Šค๋กœ ์šด์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋ˆ…์Šค์—์„œ ๋„์ปค ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ํ•„์ž๋„ ์ต์ˆ™ํ•ด์ง€๋ ค๊ณ  ํ•œ๋‹ค. ํ•„์ž๋Š” VirtualBox๋ฅผ ํ†ตํ•ด Ubuntu 20.04๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ ๋„์ปค๋„ ์œ ๋ฃŒ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” EE(Enterprise Edition)์ด ์กด์žฌํ•œ๋‹ค. ๋ฌด๋ฃŒ ๋ฒ„์ ผ์€ CE(Community Edition)์ด๋‹ค. CE ๋ฒ„์ „๋„ ๋„์ปค ์—”์ง„์˜ ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๋‹ด๊ณ  ์žˆ๊ธฐ ๋–„๋ฌธ์— ์šฐ๋ฆฌ๋Š” CE ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ CE ๋ฒ„์ „์—์„œ๋„ stable๊ณผ edge ๋ฒ„์ „์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, stable ๋ฒ„์ „์€ 3๊ฐœ์›” ๋งˆ๋‹ค, edge ๋ฒ„์ „์€ 1๊ฐœ์›” ๋งˆ๋‹ค ๋ฆด๋ฆฌ์ฆˆ ๋˜๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ 1๊ฐœ์›” ๋งˆ๋‹ค ๋ฆด๋ฆฌ์ฆˆ๋˜๋Š” ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹ ๊ทœ๋กœ ๋‚˜์˜ค๋Š” ๊ธฐ๋Šฅ์„ ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธด ํ•˜์ง€๋งŒ ๊ฐ์ข… ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฑ… ์ €์ž๋Š” stable ๋ฒ„์ „ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค.

 

๋ฆฌ๋ˆ…์Šค์—์„œ ๋„์ปค๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์ด์ „์— ํ™•์ธํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค. ์šฐ์„  ์ตœ์‹  ๋ฒ„์ „ ์ปค๋„์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์†Œํ•œ 3.10 ๋ฒ„์ „ ์ด์ƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

$uname -r

 

๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ์ด ๋„์ปค์˜ ์ง€์› ๊ธฐ๊ฐ„ ๋‚ด์— ์žˆ๋Š” ๋ฐฐํฌํŒ์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๋ณดํ†ต ์šฐ๋ถ„ํˆฌ 18.04, 20.04, CentOS 7 ์ด๋ผ๋ฉด ํ˜„์žฌ ์ง€์›์ด ๋˜๊ณ  ์žˆ๋‹ค.

 

๋‹ค์Œ์€ 64๋น„ํŠธ ๋ฆฌ๋ˆ…์Šค์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๋„์ปค๋Š” 64๋น„ํŠธ์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์œผ๋ฉฐ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์ž์‹ ์˜ ๋ฆฌ๋ˆ…์Šค ๋น„ํŠธ๊ฐ€ ๋ช‡์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

$ uname -m

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.(์šฐ๋ถ„ํˆฌ 20.04, 18.04 ๊ธฐ์ค€) ๋‹จ, ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ sudo ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ su ๋ช…๋ น์–ด ์ž…๋ ฅ์„ ํ†ตํ•ด root ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ๋ฐ”๊พธ์–ด์ค€ ํ›„ ์‹คํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ํ˜น์—ฌ๋ผ๋„ ๋ฆฌ๋ˆ…์Šค์—์„œ ์Šˆํผ(๋ฃจํŠธ) ์‚ฌ์šฉ์ž ๊ถŒํ•œ์— ๋Œ€ํ•ด ๋ชจ๋ฅธ๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด์ž.

 

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# apt-get update

# apt-get install docker-ce

 

์ถ”๊ฐ€์ ์œผ๋กœ, CentOS 7, RHEL7 ๋ฐฐํฌํŒ์— ๋Œ€ํ•ด์„œ ๋„์ปค ์„ค์น˜ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

$ yum install -y yum-utils
$ yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ yum install -y docker-ce
$ systemctl start docker

 

์œ„ ๋ช…๋ น์–ด๋กœ ๋„์ปค๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„์— ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์„œ ์„ค์น˜ํ•œ ๋„์ปค์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณด์ž.

 

# docker info

2. ๋„์ปค ์—”์ง„์˜ ํ•ต์‹ฌ, ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ๋„์ปค ์—”์ง„์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ธ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋„์ปค์™€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š”์ง€๋งŒ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž. ์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ ์•Œ์•„๋ณธ๋‹ค.

2-1. ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹œ ํ•„์š”ํ•œ ๊ฒƒ, ์ด๋ฏธ์ง€!

์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•„์š”ํ•œ ์š”์†Œ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์–˜๊ธฐํ•˜๋ฉด ๋ฌด์Šจ์†Œ๋ฆฐ๊ฐ€ ์‹ถ๋‹ค.. ๊ทธ๋ž˜์„œ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ๊ด€๊ณ„๋ฅผ ํ•œ๋‹ค๋ฏธ๋กœ ํ‘œํ˜„ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ์ƒ์œ„, ํ•˜์œ„ ๊ด€๊ณ„๋Š” ์•„๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด๊ฐ€ ์ƒ์„ฑํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ตœ์ดˆ๋กœ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด ์ด๋ฏธ์ง€๊ฐ€ ์„ ํ–‰ํ•˜์—ฌ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ด€๊ณ„๋ฅผ ๋„์‹ํ™” ํ•  ์ˆ˜ ์žˆ์„ ๋“ฏ ํ•˜๋‹ค.

 

์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ ๊ด€๊ณ„

 

์ตœ์ดˆ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ ์™ธ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‚ณ๊ณ , ๊ทธ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋˜ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ๋‚ณ๋Š” ์žฌ๊ท€์ ์ธ ๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฏธ์ง€๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ํ™•์žฅ์ž๊ฐ€ .iso์ธ iso ํŒŒ์ผ๊ณผ ๋น„์Šทํ•œ ๊ฐœ๋…์ด๋‹ค. ์ด๋ฏธ์ง€๋Š” ์—ฌ๋Ÿฌ ๊ณ„์ธต์œผ๋กœ ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ๋กœ ์กด์žฌํ•˜๋ฉฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ๋•Œ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ๋„์ปค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

#ํ˜•์‹ : [Repository name]/[image name]/[tag]

zedd_repo/ubuntu20.04/v1
younghun/python3.10/latest

 

docker images ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•œ๋‹ค

 

์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ˜•์‹์˜ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž.

 

  • Repository name : ์ €์žฅ์†Œ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ์žฅ์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ํ•ธ๋“œํฐ์—์„œ ๊ฒŒ์ž„์„ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ ๋“ค์–ด๊ฐ€๋Š” ์•ฑ ์Šคํ† ์–ด ๋˜๋Š” ๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด ๊ฐ™์€ ๊ณณ์ด๋‹ค. ์ด๋ฏธ์ง€ ์ด๋ฆ„ ํ˜•์‹์—์„œ ์ €์žฅ์†Œ ์ด๋ฆ„์ด ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋„์ปค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์ธ Docker Hub์˜ ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ๋œปํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ๋‚ด๊ฐ€ ๋งŒ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ์ƒ์„ฑํ•  ๋•Œ, ๋„์ปค ํ—ˆ๋ธŒ์— ์ €์žฅ์‹œํ‚ฌ ์ด๋ฏธ์ง€๋ฅผ ๋œปํ•˜๊ธฐ ์œ„ํ•ด docker.io ๋ฅผ ๋ช…์‹œํ•˜๋ฉด ๋œ๋‹ค. ๋น„์Šทํ•œ ๊ฒƒ์œผ๋กœ๋Š” ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์˜๋ฏธํ•˜๋Š” gcr.io๊ฐ€ ์žˆ๊ณ  ๊นƒํ—™ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ธ ghcr.io ๊ฐ€ ์žˆ๋‹ค. ghcr.io ์— ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ผ์ „์— ํฌ์ŠคํŒ…ํ•œ ์ ์ด ์žˆ๋‹ค.
  • image name : ์ด๋ฏธ์ง€์˜ ์ด๋ฆ„์ด์ž ์ด๋ฏธ์ง€๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Ubuntu, CentOS ๊ฐ™์€ ์šด์˜์ฒด์ œ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ณ , Python, Java, Go ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.
  • tag : ์ด๋ฏธ์ง€์˜ ๋ฒ„์ „์„ ๋œปํ•˜๋ฉฐ ์ด๋ฏธ์ง€์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ์ฆ‰, ๋ฆฌ๋น„์ ผ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ๋œ๋‹ค. ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๋„์ปค ์—”์ง„์ด ์ž๋™์ ์œผ๋กœ latest ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํƒœ๊ทธ์— ๋ถ™์ธ๋‹ค.

2-2. ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ณณ, ์ปจํ…Œ์ด๋„ˆ!

๋‹ค์Œ์€ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์ƒ์„ฑ ์‹œ์— ์‚ฌ์šฉํ•œ ์ด๋ฏธ์ง€์˜ ๋ชฉ์ ์— ๋งž๋Š” ํŒŒ์ผ์ด ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ๊ณผ ๊ฒฉ๋ฆฌ๋œ ์‹œ์Šคํ…œ ์ž์› ๋ฐ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณต๊ฐ„์ด ๋ฐ”๋กœ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค. ๋˜ํ•œ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ์ด๋ฏธ์ง€์—์„œ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋งŒ ์ปจํ…Œ์ด๋„ˆ ๊ณ„์ธต์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ์—์„œ ์–ด๋–ค ๊ฒƒ์„ ํ•˜๋˜์ง€ ์›๋ž˜ ์ด๋ฏธ์ง€์—๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, Ubuntu20.04 ๋ผ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ , ๊ทธ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— git, python ๋“ฑ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‚ด๊ฐ€ ์„ค์น˜ํ–ˆ๋‹ค๊ณ  ํ•œ๋“ค ์›๋ณธ ์ด๋ฏธ์ง€์ธ  Ubuntu20.04์—๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค(์ฆ‰, Ubuntu20.04 ์ด๋ฏธ์ง€ ์›๋ณธ ์•ˆ์— git, python์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Œ) 

 

์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๊ฐœ๋ฐœํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ๊ณผ ๋น„์Šทํ•œ ๋Š๋‚Œ์ด๋‹ค. ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์€ ๋น„์Šทํ•˜์ง€๋งŒ ๊ฐ€์ƒํ™˜๊ฒฝ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ํŒŒ์ผ์‹œ์Šคํ…œ, ๋„คํŠธ์›Œํฌ๊นŒ์ง€ ๋” ๋งŽ์€ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค.


์ด๋ ‡๊ฒŒ๊นŒ์ง€ ํ•ด์„œ ์ด๋ฒˆ์—๋Š” ๋„์ปค๋ผ๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์ธํ”„๋ผ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ , ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด์•˜๊ณ  ๊ทธ ํ•ต์‹ฌ์ธ ๋„์ปค ์—”์ง„์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ธ ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ๋Š” ๋„์ปค ์ด๋ฏธ์ง€์™€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ๋ช…๋ น์–ด ๋“ฑ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

๋ฐ˜์‘ํ˜•