๐Ÿณ Docker study 1st

Why Docker Matters for Autonomous Driving?

by Arielle

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

์•ž์œผ๋กœ์˜ ํฌ์ŠคํŒ…์€ <Inflearn ์‹ค์ „๋„์ปค: ๋„์ปค๋กœ ๋‚˜๋งŒ์˜ ๋”ฅ๋Ÿฌ๋‹ ํด๋ผ์šฐ๋“œ ์ปดํ“จํ„ฐ ๋งŒ๋“ค๊ธฐ>๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์˜ค๋Š˜์˜ ์ฒซ๋ฒˆ์งธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋„์ปค๊ฐ€ ์™œ ์ž์œจ์ฃผํ–‰ ๊ฐœ๋ฐœ์ž๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๋‚˜์—๊ฒŒ ํ•„์š”ํ•œ์ง€, ๋„์ปค๊ฐ€ ๋Œ€์ฒด ์ •ํ™•ํžˆ ๋ญํ•˜๋Š” ๊ฑด์ง€, ๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ์ž์ฃผ ์“ธ ๊ธฐ๋ณธ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ด์•ผ๊ธฐ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.


1. Docker might be essential if you want to work as an autonomous driving developer in the future!

#AI ๊ฐœ๋ฐœ ๋ฐ ์ปจํ…Œ์ด๋„ˆํ™” ํŠธ๋žœ๋“œ #์ž๋™ ๋ ˆ์ด๋ธ”๋ง ํŒŒ์ดํ”„๋ผ์ธ #ํ™•์žฅ์„ฑ

โ€˜ํŠธ๋žœ๋“œโ€™๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ถ„์•ผ๋Š” ์–ด๋””์ผ๊นŒ? ์ผ๋‹จ ๋‚˜๋Š” ํŒจ์…˜ ์‚ฐ์—…์ด ๊ฐ€์žฅ ๋จผ์ € ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํŒจ์…˜ ์‚ฐ์—… ๋งŒํผ ํŠธ๋žœ๋“œ์— ๋ฏผ๊ฐํ•œ ๋ถ„์•ผ๊ฐ€ ๋˜ ์žˆ๋‹ค. ๊ทธ๊ฑด ๋ฐ”๋กœ IT๋‹ค.

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

๋‹ค์‹œ Docker๋กœ ๋Œ์•„์™€์„œ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด, ๊ฒฐ๋ก ์€ ์•ž์œผ๋กœ์˜ ์ž๋™์ฐจ๋Š” AI๊ฐ€ ๊ธฐ๋ณธ ๋ฒ ์ด์Šค๋กœ ํƒ‘์žฌ๋œ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์งˆ ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๊ณ„์† ์–ธ๊ธ‰๋˜๋Š” Docker๋Š” ์ฐจ๋Ÿ‰ AI ๋ชจ๋ธ์„ ๋งˆ์น˜ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ƒ์ž์ฒ˜๋Ÿผ ์ปจํ…Œ์ด๋„ˆํ™”์‹œ์ผœ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‹ค์–‘ํ•œ ๋ชจ๋ธ๊ณผ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋กœ ์ดํ•ดํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ฒซ๋ฒˆ์งธ ํ‚ค์›Œ๋“œ๋Š” โ€˜AI ๊ฐœ๋ฐœ ๋ฐ ์ปจํ…Œ์ด๋„ˆํ™” ํŠธ๋žœ๋“œโ€™์ด๋‹ค.

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

Descriptive Alt Text

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

์•ž์„œ ์ž์œจ์ฃผํ–‰ ์ฐจ๋Ÿ‰์˜ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ธ๊ธ‰ํ–ˆ๋Š”๋ฐ,๋Œ€ํ‘œ์ ์œผ๋กœ LiDAR, ๋ ˆ์ด๋”, ์นด๋ฉ”๋ผ ๋“ฑ์ด ์žˆ๋‹ค. ์ด ์„ธ๊ฐ€์ง€ ์„ผ์„œ์˜ ๋ฐ์ดํ„ฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ์„œ๋กœ ๋‹ค๋ฅธ ํ˜•์‹๊ณผ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ Docker์˜ โ€˜ํ™•์žฅ์„ฑ๊ณผ ๋ฐฐํฌโ€™ํŠน์ง•์ด ๋น›์„ ๋‚ธ๋‹ค.

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

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Docker๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์ฒ˜๋ฆฌ ์†๋„๋„ ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค. ๊ธฐ์กด์˜ ๋ฌผ๋ฆฌ์  ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฐ ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ณ  ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ™•๋ฅ ๋„ ๋†’์•˜๋‹ค. ํ•˜์ง€๋งŒ Docker๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ๋†’์—ฌ์ค€๋‹ค.

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

2. 10 Basic Docker Commands

Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด๋Š” 10๊ฐœ ์ •๋„ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ฒ˜์Œ Git์„ ์“ธ ๋•Œ, commit, pull, push์™€ ๊ฐ™์€ ๋ช…๋ น์–ด ๋ช‡๊ฐœ๋ฅผ ๋ฐฐ์› ๋Š”๋ฐ, ์ฒ˜์Œ์—” ๋Œ€์ฒด ๋ญ”์†Œ๋ฆฐ๊ฐ€ ํ–ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ทธ ๋•๋ถ„์ธ์ง€ ์ฒ˜์Œ ๋„์ปค ๋ช…๋ น์–ด๋ฅผ ๋ดค์„ ๋•Œ Git๊ณผ ๋น„์Šทํ•˜๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜๋‹ค. ์•„๋ž˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋ณธ ๋ช…๋ น์–ด 10๊ฐœ๋‹ค.

  • docker pull
  • docker build ยซ- Dockerfile
  • docker run
  • docker images
  • docker ps (-a)
  • docker stop
  • docker start
  • docker exec -it /bin/bash
  • docker rm
  • docker rmi

๋ช…๋ น์–ด๋ฅผ ๋ณด๋ฉด โ€˜imagesโ€™, โ€˜containerโ€™์™€ ๊ฐ™์€ ๋‹จ์–ด๊ฐ€ ๋ณด์ธ๋‹ค. ์•ž์„œ Git๊ณผ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด๋ดค๋‹ค. ๋ฌผ๋ก  ์‹ค์ œ๋กœ ์™„์ „ํžˆ Git๊ณผ Docker์˜ ํ”Œ๋กœ์šฐ๊ฐ€ ๋˜‘๊ฐ™๋‹ค๋Š” ๊ฑด ์ ˆ๋Œ€ ์•„๋‹ˆ๋‹ค. (์ด์™€ ๊ด€๋ จ๋œ Docker ์šด์˜์ฒด์ œ ์ด์•ผ๊ธฐ๋Š” ์ถ”ํ›„ ํฌ์ŠคํŒ… ์˜ˆ์ •.) ๋‚ด๊ฐ€ ๋Š๋ผ๊ธฐ์— ๊ฐ€์ƒํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•œ๋‹ค๋Š”๊ฒŒ ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋Š๊ปด์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Docker์—์„œ์˜ โ€˜imagesโ€™๋ฅผ ์ฒ˜์Œ ์ ‘ํ–ˆ์„ ๋•Œ๋Š” ๋ฌด์Šจ ์‚ฌ์ง„์„ ๊ฐ€์ ธ์˜จ๋‹ค๋Š” ๊ฑด๊ฐ€? ๋ผ๊ณ  ์ฒ˜์Œ ์ดํ•ดํ–ˆ๋‹ค. ์•Œ๊ณ ๋ณด๋‹ˆ images๋Š” ์•ฝ๊ฐ„ ๋ถ•์–ด๋นต๐ŸŸ๐Ÿž ํ‹€? ๊ฐ™์€ ๊ฑฐ๋ž€๋‹ค. ๊ทธ๋Ÿผ โ€˜containerโ€™์€ ๋˜ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ๋Œ€๋‹ต์€ ์„ฑ์ˆ˜, ํ™๋Œ€ ๋ผ๊ณ  ํ•œ๋‹ค. (ํ™˜์žฅ..)

์ฒ˜์Œ์—” ๋ถ•์–ด๋นต ๋ญ”์†Œ๋ฆฐ๊ฐ€ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒฐ๋ก ์€ ๋‚ด๊ฐ€ python์ฒ˜๋Ÿผ ์›ํ•˜๋Š” ์†Œ์Šค๋ฅผ images๋กœ์„œ Docker Registory์—์„œ ๋‹น๊ฒจ์˜ฌ ์ˆ˜ ์žˆ๊ณ (pull), ๋‚ด ๋กœ์ปฌ์ด ์•„๋‹Œ โ€˜containerโ€™๋ผ๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ(Docker daemon)์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ผ๋‹จ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž.

Descriptive Alt Text

3. Try Using the Basic Commands

๋ถ•์–ด๋นต์„ ๊ธฐ์–ตํ•˜๋ฉฐ ์ง์ ‘ ์‹ค์Šต๋„ ํ•ด๋ดค๋‹ค.

๐Ÿ’ป $ docker ps

๐Ÿ’ป $ docker ps -a

๋‚˜์˜ ๋กœ์ปฌ์— ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ๋ถ•์–ด๋นต๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋‹ค. โ€˜nginxโ€™๋ผ๋Š” ๋ถ•์–ด๋นต ํ‹€์ด โ€˜reverent_beaverโ€™์ด๋ผ๋Š” ๊ณณ์—์„œ ์žฅ์‚ฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

Descriptive Alt Text

Descriptive Alt Text

๐Ÿ’ป $ docker images

๋‚ด๊ฐ€ ๊ฐ€์ง„ ์ „์ฒด ๋ถ•์–ด๋นต ํ‹€์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ์ด 6๊ฐœ์˜ images๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Descriptive Alt Text

๐Ÿ’ป $ docker pull <images name>

์œ„์—์„œ ํ™•์ธํ–ˆ๋“ฏ์ด ๋‚˜๋Š” ํ˜„์žฌ โ€˜pythonโ€™์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ถ•์–ด๋นต ํ‹€์ด ์—†๋Š” ์ƒํƒœ๋‹ค. โ€˜pythonโ€™์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ถ•์–ด๋นต ํ‹€์„ ์›ํ•œ๋‹ค๋ฉด Docker registory์—์„œ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ด์ „์—” ์—†์—ˆ๋˜ โ€˜pythonโ€™ images๊ฐ€ ์ƒ์„ฑ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Descriptive Alt Text

Descriptive Alt Text

๐Ÿ’ป $ docker run -it โ€”name <container name> <images>

๐Ÿ’ป $ docker exec -it <container name> <images>

๋ถ•์–ด๋นต ํ‹€์„ ๊ฐ€์ ธ์™”๋‹ค๋ฉด ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ๋ถ•์–ด๋นต ํ‹€์— โ€˜python-containerโ€™์ด๋ผ๋Š” ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ  ์‹คํ–‰์‹œ์ผœ ๋ณด๋ฉด ์‹ค์ œ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋‹จ ๋งŒ๋“ค์–ด ๋†“์€ ๋ถ•์–ด๋นต ํ‹€์€ โ€˜execโ€™ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.

Descriptive Alt Text

Descriptive Alt Text

๐Ÿ’ป $ docker stop <container name>

๐Ÿ’ป $ docker rm <container name>

๐Ÿ’ป $ docker rmi <image name>

ํ•„์š”์—†๋Š” ๋ถ•์–ด๋นต ํ‹€(images)์ด ์ƒˆ๊ธธ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋Š” ์‚ญ์ œํ•˜๋ฉด ๋œ๋‹ค. ์ฃผ์˜ํ•  ์ ์€ ๋ฐ”๋กœ python์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ถ•์–ด๋นต ํ‹€์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•„์ž ์—ญ์‹œ ์ด ๋ถ€๋ถ„์ด ํ•œ๋ฒˆ์— ์ดํ•ด๊ฐ€ ๋˜์ง€๋Š” ์•Š์•˜์—ˆ๋‹ค. ๊ฒฐ๋ก ์€ ๋จผ์ € ์‚ญ์ œํ•˜๊ณ ์ž ํ•˜๋Š” container๋ฅผ ์ค‘์ง€(stop)ํ•œ ํ›„ ์‚ญ์ œํ•ด์•ผ ํ•˜๊ณ , ์ดํ›„ ๋ถ•์–ด๋นต ํ‹€(images) ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

Descriptive Alt Text

Descriptive Alt Text


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


Reference

Tags: DockerAutonomous_DrivingNVIDIA

Subscribe via RSS