๐ ํด๋น ํฌ์คํ
์ ์์ํ์ธ์! ๋์ปค/์ฟ ๋ฒ๋คํฐ์ค ์์ ์ ์ฝ๊ณ ๊ฐ์ธ์ ์ธ ๋ชฉ์ ํ์ ์์ฑ๋๋ ๊ธ์
๋๋ค. ํฌ์คํ
์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์๋ฃ๋ ์ ๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ์์์ ์๋ฆฝ๋๋ค.
์ด๋ฒ ํฌ์คํ
์ ์์์ผ๋ก ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค ๊ด๋ จ ๊ฐ๋ฐ ์์ ์ ํตํด ๋ณธ๊ฒฉ์ ์ผ๋ก ๊น์ด ์๋ ๊ณต๋ถ๋ฅผ ์์ํด๋ณด๋ ค๊ณ ํ๋ค. ๋์ปค ๊ด๋ จํด์๋ ์ด์ ์ ์ํ์ฝ๋ฉ ์ด๊ณ ์๋์ ๊ธฐ์ด ๊ฐ์๋ง ๊ณต๋ถํ์๊ณ ์ ๋๋ก ๋์ ์๋ฆฌ์ ๊น์ด ์๋ ๊ณต๋ถ๋ฅผ ํ์ง ๋ชปํ์๋ค. ์ต๊ทผ ์ปจํ
์ด๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ธํ๋ผ๋ฅผ ๊ตฌ์ฑํ๋ ํธ๋ ๋๋ก ๊ฐ๊ฒ ๋๋ฉด์ ๋์ปค์ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ํ ๊ณต๋ถ๋ฅผ ์ธ์ ๊ฐ๋ ํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ ์ฒซ ๋ฒ์งธ ์ฃผ์ ๋ก ๋์ปค๋ ์ด๋ค ๊ฐ๋
์ธ์ง ์์๋ณด๊ณ ๋์ปค๋ผ๋ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์ฃผ์ฒด์ด์ ํต์ฌ์ธ ๋์ปค ์์ง์ ์ด๋ฏธ์ง์ ์ปจํ
์ด๋์ ๋ํด ์์๋ณธ๋ค.
1. ๊ฐ์๋จธ์ ๊ณผ ๋์ปค ์ปจํ ์ด๋
์ฐ์ ๋์ปค๋, ๋ฆฌ๋
์ค ์ปจํ
์ด๋์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํจ์ผ๋ก์จ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์
์ ์ปจํ
์ด๋๋ก์ ์ข ๋ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ง ์คํ์์ค ํ๋ก์ ํธ์ด๋ค. ๋ค๋ฅธ ์ข
๋ฅ์ ์ปจํ
์ด๋๋ก๋ OpenVZ, LXC, cri-o ๋ฑ์ด ์๋ค๊ณ ํ๋ค. ํ์ง๋ง ํ์ฌ ๊ฐ๋ฐ ์ํ๊ณ์์๋ ๋์ปค๊ฐ ์ฌ์ค์ ํ์ค์ผ๋ก ์๋ฆฌ์ก์ ์ฌ์ฉ๋๊ณ ์๋ค. ์ฐธ๊ณ ๋ก ๋์ปค๋ Go์ธ์ด๋ก ์์ฑ๋์๋ค. ๋์ปค์ ๊ด๋ จ๋ ์ ํ์ด์ ํ๋ก์ ํธ๋ก๋ ๋์ปค ์ปดํฌ์ฆ, ๋์ปค ํ๋ธ, ๋งฅ์ด๋ ์๋์ฐ์์ ๋์ปค๋ฅผ ์ค์นํ ์ ์๋ Docker for Desktop ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก '๋์ปค'๋ผ๊ณ ํ๋ฉด ๋์ปค ์์ง ํน์ ๋์ปค์ ๊ด๋ จ๋ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์๋ฏธํ๋ค. ์ฌ๊ธฐ์ ๋์ปค ์์ง์ด๋, ๋์ปค๋ผ๋ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์ฃผ์ฒด๋ก, ์ปจํ
์ด๋๋ฅผ ์ ์ดํ๋ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ญํ ์ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋์ปค ์ปดํฌ์ฆ๋ ๋์ปค ํ๋ธ ๋ฑ์ ๋์ปค ๊ด๋ จ ํ๋ก์ ํธ๋ค์ ์ด ๋์ปค ์์ง์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด์ ์๋จ์ ๋ถ๊ณผํ๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋ฐฐ์์ผํ ๊ธฐ์ด์ด์ ํต์ฌ์ธ ๋ถ๋ถ์ ๋ฐ๋ก ๋์ปค ์์ง์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ๋์ปค๋ผ๋ ์ปจํ
์ด๋๊ฐ ๋ฑ์ฅํ๊ธฐ ์ด์ ์๋ ์ด๋ค ๊ฒ์ ์ฌ์ฉํ์๊น? ๋ฐ๋ก ๊ฐ์๋จธ์ ์ ์ด์ฉํ๋ค. ๋จผ์ ์๋ ๊ทธ๋ฆผ์ ๋ณด์. ์๋์ ๊ทธ๋ฆผ์ ํ๋์ ๋ฌผ๋ฆฌ์ ์ธ ์๋ฒ์ A, B๋ผ๋ ๋๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ๊ฐ์ ๋จธ์ ์ ์ด์ฉํ ๋์ ๋์ปค๋ฅผ ์ด์ฉํ ๋์ ๊ตฌ์กฐ ์ฐจ์ด์ด๋ค.
๋จผ์ ๊ฐ์ ๋จธ์ ๊ณผ ๋์ปค ๋๋ค ๋ฌผ๋ฆฌ์ ์ธ 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) ๊ตฌ์กฐ๊ฐ ์๋ค. ๋ชจ๋๋ฆฌ์ค ๊ตฌ์กฐ๋ ์ํํธ์จ์ด์ ์ฌ๋ฌ ๋ชจ๋์ด ์ํธ์์ฉํ๋ ๋ก์ง์ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ (ํ๋ก๊ทธ๋จ) ๋ด์์ ํ ๋ฒ์ ๊ตฌ๋์ํค๋ ๋ฐฉ์์ ์๋ฏธํ๋ค. ์๊ท๋ชจ ์๋น์ค์๋ ์ด๋ฌํ ๊ตฌ์กฐ๊ฐ ์ ํฉํ ์ ์์ง๋ง, ์๋น์ค๊ฐ ์ปค์ง์ ๋ฐ๋ผ ๊ธฐ๋ฅ๋ ๋ ๋ง์ด ์๊ธฐ๊ณ ๋ณต์กํด์ง๋ฉด ์ด๋ฌํ ๋ชจ๋๋ฆฌ์ค ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ด ์ค์ด๋ค ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๋ค. ๋ฐ๋ฉด์ ๋ง์ดํฌ๋ก์๋น์ค๋ ์ฌ๋ฌ ๋ชจ๋์ ๊ฐ๊ฐ ๋ ๋ฆฝ์์ผ ์ธ์ด์ ์ข ์๋์ง ์๊ณ ๋ณํ์ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์์ผ๋ฉฐ, ๊ฐ ๋ชจ๋์ ๊ด๋ฆฌ๊ฐ ์ฌ์์ง๊ฒ ๋๋ค. ์ด๋ฌํ ๋ง์ดํฌ๋ก์๋น์ค์๋ ์ปจํ ์ด๋๊ฐ ํ์์ ์ด๋ค. ์ปจํ ์ด๋๋ ๋ช ์ด ๋ด๋ก ์์ฑ, ์์์ด ๊ฐ๋ฅํ๋ฉฐ ๊ฐ ๋ชจ๋ ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ปค๊ฐ ๊ทธ๋ฌํ ์ปจํ ์ด๋ ์ข ๋ฅ ์ค ๊ฐ์ฅ ์ธ๊ธฐ๊ฐ ์๋ค.
์ด๋ ๊ฒ ๋์ปค๋ผ๋ ์ปจํ ์ด๋๋ฅผ ํ์ฉํด์ ๋ง๋๋ ๋ง์ดํฌ๋ก์๋น์ค ๊ตฌ์กฐ๋ ๊ฐ๋ฐ์๊ฐ ๊ตฌ์กฐ ์์ฒด๋ฅผ ์ง์ ๊ตฌํํ๊ธฐ๋ณด๋ค๋ ๋์ปค ์ค์ ๋ชจ๋, ์ฟ ๋ฒ๋คํฐ์ค ๋ฑ ๊ฐ์ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ์ ํตํด ๊ตฌํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
์ง๊ธ๊น์ง ๊ทธ๋ผ ๋์ปค๊ฐ ๋ฌด์์ด๊ณ ์ ํ์ํ์ง ์์๋ณด์๋ค. ๋ค์ ๋ชฉ์ฐจ๋ถํฐ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋์ปค ์์ง์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ธ ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. ๊ทธ์ ์์ ๋ง์ง๋ง์ผ๋ก ๋์ปค ์์ง์ ๋ฆฌ๋ ์ค์์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฐ๋จํ ์์๋ณด์. ๋งฅ๊ณผ ์๋์ฐ์์๋ 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
์ด๋ฏธ์ง์ ์ด๋ฆ์ ๋ํ๋ด๋ ํ์์ ๊ฐ ๊ตฌ์ฑ์์๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ํ๋์ฉ ์ดํด๋ณด์.
- 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์ด ์ค์น๋์ด ์์ง ์์)
์ด๋ป๊ฒ ๋ณด๋ฉด ๊ฐ๋ฐํ ๋ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ์ํ๊ฒฝ๊ณผ ๋น์ทํ ๋๋์ด๋ค. ๋ ๋ฆฝ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ ๋น์ทํ์ง๋ง ๊ฐ์ํ๊ฒฝ๊ณผ๋ ๋ฌ๋ฆฌ ํ์ผ์์คํ , ๋คํธ์ํฌ๊น์ง ๋ ๋ง์ ๋ ๋ฆฝ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ฒ์ด ๋ฐ๋ก ์ปจํ ์ด๋์ด๋ค.
์ด๋ ๊ฒ๊น์ง ํด์ ์ด๋ฒ์๋ ๋์ปค๋ผ๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ธํ๋ผ๊ฐ ํ์ํ ์ด์ , ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์์๋ณด์๊ณ ๊ทธ ํต์ฌ์ธ ๋์ปค ์์ง์ ๊ธฐ๋ณธ ๋จ์์ธ ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ ๊ฐ๋ ์ ๋ํด ์์๋ณด์๋ค. ๋ค์ ํฌ์คํ ๋ถํฐ๋ ๋์ปค ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, ๋ช ๋ น์ด ๋ฑ์ ๋ํด ์์ธํ ์์๋ณด๋๋ก ํ์.
'Container > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ํ๋๋ก ๋ฌถ์ด ๊ด๋ฆฌํ์, Docker Compose (0) | 2023.05.28 |
---|---|
[Docker] ์ฌ๋ฌ ํธ์คํธ์ ๋์ปค๋ฅผ ๊ด๋ฆฌํ์, Docker Swarm (2) | 2023.05.11 |
[Docker] ์๋ฒ๋ก์์ ์ญํ , Docker Daemon (0) | 2023.04.19 |
[Docker] ๋์ปค ์ด๋ฏธ์ง ๋ค๋ฃจ์ด๋ณด๊ธฐ, ๊ทธ๋ฆฌ๊ณ Dockerfile (4) | 2023.04.05 |
[Docker] ๋์ปค ์ปจํ ์ด๋ ๋ค๋ฃจ์ด๋ณด๊ธฐ (1) | 2023.03.07 |