2023. 10. 5. 19:53ใ0. TiL ( Today I Learned )
์๋ฒ๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด, ๋ ์ฑ๋ฅ ์ข์ ์๋ฒ๋ก ์ฎ๊ฒจ๊ฐ๊ฑฐ๋,๋์ด๋ ์๋ฒ ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฒ๋ฅผ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ ์ผ์ด ์๊ธธ ์ ์๋ค.
๊ทธ๋ผ ๊ทธ๊ณณ์์๋ ๋๊ฐ์ด ์ค์น๋ฅผ ํด์ผํ๋ ์ผ์ด ๋ฐ์๋๋ค.
๊ทธ๋๋ง ๊ฐ์ ์ฌ๋์ด ํ๋๊ฑฐ๋ฉด ์ข ๋ฒ๊ฑฐ๋กญ๊ณ ๋ง๋๋ฐ ์ง๊ธ์ ํด์งํ๊ณ ์๋ ๊ฐ๋ฐ์๊ฐ ๊ตฌ์ถํ๊ฒ ๋๋ค๋ฉด?
๊ฑฐ๊ธฐ๋ค ๊ตฌ์์ด๋ผ ๋งค๋ด์ผ๋ ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ฉด? ์์ค์ ์ด๋๋ฅผ ๊ณ ์ณ์ผ ํ ์ง ์๋ฌด๋ ๋ชจ๋ฅด๋ ์ํฉ์ด ๋ฐ์๋๋ค๋ฉด?
๊ฐ์ ์๋ฒ์ ์ฌ๋ฌ ์๋น์ค๋ฅผ ๋๋ฆฌ๋ ๊ฒฝ์ฐ, ๊ฐ๊ฐ์ด ๋ค๋ฅธ ์คํํ๊ฒฝ์์ ๋์ํด์ผ ํ ๋ ์ผ์ด ๊น๋ค๋ก์์ง ์๋ ์๋ค.
ex) ๊ธฐ์กด์ฌ์ดํธ๋ ์๋ฐ 7์์ ๋์ ์ ์๋น์ค๋ ์๋ฐ 8์์ ๋์๋๋ฉด ์ด๊ฒ์ ๊ฒ ๋ง์ถ๊ณ ์ ๊ฒฝ ์จ์ผ ํ ๊ฒ์ด ๋ง์์ง๋ค.
Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ถํธํจ์ ์์จ ์ ์๋ค.
๊ฐ ์์๊ฐ ์ค์น๋ ํํ๋ฅผ ‘์ด๋ฏธ์ง’๋ผ๋ ํํ๋ก ๋ฐ์ ํด์ ์ ์ฅํ๋ค.
( ๊ฐ ์ ํ๋ง๋ค ๊ณต์์ ์ผ๋ก ์ ๊ณต๋๋ ์ด๋ฏธ์๋ ์๊ณ , ์ํ๋ ๋๋ก ๋ง๋ค์ด ๋ผ ์๋ ์๋ค. )
Docker๋ DockerHub์ ์ ๋ก๋๋ผ์ ๊ณต์ ๋๊ณ ๋ค์ด๋ก๋ํ์ฌ์ง ์ ์๋ค.
์ด๋ ๊ฒ ์ด๋ฏธ์ง๋ก ์ ์ฅ๋ ํญ๋ชฉ๋ค์ด ํจ๊ป ์ฐ๊ฒฐ๋ผ์ ๋์ํ๋๋ก ์ค์ ์ํ๋ฅผ ๋ช ๋ น์ด ํ ์คํธ๋ ๋ฌธ์ ํํ๋ก ์ ์ฅํ ์๋ ์๋ค.
์ด๋ฐ ๊ฒ๋ค์ ์ค์นํ๋ ๊ณผ์ ์ ์ด๋์๋ ์ปดํจํฐ๊ฐ ์๋์ผ๋ก ์ฌํํ ์ ์๋๋ก ๋ นํํด ๋๋ค๋ ๋๋์ผ๋ก.
๋ฐ๋ผ์ ์ด ๋ฌธ์๋ง ์ ๋ณด๊ดํด ๋๋ฉด ์ด ์์๋ค์ด ์ด๋์๋ ๋ฏธ๋ฆฌ ์ง์ ๋ ์๋น์ค์ ํ์ํ ์ค์ ๋๋ก ๋์ปคํ๋ธ๋ก๋ถํฐ ๋ค์ด๋ก๋ํ์ฌ์ ธ์ ์ค์น๋ ์ ์๋ค.
๋์ปค๋ ์ด๊ฒ๋ค์ ์ปดํจํฐ์ ๋ฐ๋ก ์ค์นํ์ง ์๋๋ค. ‘์ปจํ ์ด๋’๋ก ๋ถ๋ฆฌ๋ ๋ ๋ฆฝ๋ ๊ฐ์๊ณต๊ฐ์ ๋ง๋ค์ด๋ด์ ๋ณต์ํ๋ค.
๋๋ฌธ์ ์๊น ๋งํ๋ ์ผ์ด์ค์ ๊ฐ์ด java7,8 ๋ํ ๊ฐ๊ฐ์ ์ปจํ ์ด๋ ์์์ ์๋ก ๋ฐฉํด๋ฐ๋ ์ผ ์์ด ๋์๊ฐ ์ ์๋ค.
๋์ปค๋ ๊ฐ์์ปดํจํ ํ๊ณ ๋ ๋ค๋ฅธ ๊ตฌ์กฐ์ด๋ค.
๊ฐ์์ปดํจํ ์ ๊ฐ๊ฐ OS๋ฅผ ๊ฐ๋ํ๋ ์ปดํจํฐ๋ค์ด ๋ฌผ๋ฆฌ์ ์์์ ๋ถํ ํด์ ์ฐ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ํ๊ณ๊ฐ ์๊ธฐ๊ฒ ๋๋ค.
๋์ปค๋ OS๋จ๊น์ง ๋ด๋ ค๊ฐ๋ ๊ฒ ์๋๋ผ ์คํํ๊ฒฝ๋ง ๋ ๋ฆฝ์ ์ผ๋ก ๋๋ฆฌ๋ ๊ฑฐ๋ผ ์ปดํจํฐ์ ์ง์ ์์๋ค์ ์ค์นํ ๊ฑฐ๋ ๋ณ ์ฐจ์ด ์๋ ์ฑ๋ฅ์ ๋ผ ์ ์๊ณ ๊ฐ์์ปดํจํ ๋ณด๋ค ํจ์ฌ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ๊ฐ๊ฐ์ ์ค์นํ๊ณ ์คํํ๊ณ ์ผ๊ณ ๋๊ณ ์ฐ๋ํ ์ ์๋ค.
์๋ฒ์ ๋ญ๊ฐ ์๋ชป๋ผ์ ๊ณ ์น๊ฑฐ๋, ์ ๊ทธ๋ ์ด๋ ํ ๋ ์ผ์ผ์ด ์์๋ฅผ ์ ์งํ๊ณ ์ง์ฐ๊ฑฐ๋ ์๋ก ๊น ํ์ ์์ด ์ปจํ ์ด๋๋ฅผ ํต์จฐ๋ก ๊ต์ฒดํด์ ์๋ก ์คํํ๋ฉด ๋๋ค. ์๋ฒ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ์ผ์ด ๊ฐํธํด์ง๊ฒ ๋์๋ค.
1. Docker ์คํ๋ฐฉ์
Docker ๊ธฐ์ ์ Linux ์ปค๋๊ณผ Cgroups ๋ฐ ๋ค์์คํ์ด์ค ๋ฑ ์ปค๋์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ ๋ฆฝ์ ์ผ๋ก ์คํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ฌํ ๋ ๋ฆฝ์ฑ์ ์ปจํ ์ด๋์ ๋ณธ๋ ๋ชฉ์ ์ด๋ค. ๋ค์ ๋งํด์, ์ฌ๋ฌ ํ๋ก์ธ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๊ฐ๋ณ์ ์ผ๋ก ์คํํ์ฌ ์ธํ๋ผ๋ฅผ ๋ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๊ณ ๊ฐ๋ณ ์์คํ ์ ์ฌ์ฉํ ๋์ ๋์ผํ ๋ณด์์ ์ ์งํ ์ ์๋ค.
Docker๋ฅผ ํฌํจํ ์ปจํ ์ด๋ ํด์ ์ด๋ฏธ์ง ๊ธฐ๋ฐ ๋ฐฐํฌ ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฌ ํ๊ฒฝ ์ ๋ฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์๋น์ค๋ฅผ ๋ชจ๋ ์ข ์ ํญ๋ชฉ๊ณผ ์์ฝ๊ฒ ๊ณต์ ํ ์ ์๋ค. ๋ํ Docker๋ ์ด ์ปจํ ์ด๋ ํ๊ฒฝ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ (๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฒฐํฉ๋ ํ๋ก์ธ์ค) ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ค.
์ด๋ฌํ ํด์ Linux ์ปจํ ์ด๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด Docker๋ฅผ ์ฌ์ฉ์ ์นํ์ ์ด๊ณ ๊ณ ์ ํ๊ฒ ๋ง๋ค์ด ์ฃผ๋ฏ๋ก ์ฌ์ฉ์๋ ๊ทธ ์ด๋ ๋๋ณด๋ค ์ฝ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์ค ํ๊ณ , ์ ์ํ๊ฒ ๋ฐฐํฌํ๊ณ , ๋ฒ์ ๋ฐ ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ ์ดํ ์ ์๋ค.
2. Docker ์ฅ์
๋ชจ๋์ฑ
์ปจํ
์ด๋ํ์ ๋ํ Docker ์ ๊ทผ ๋ฐฉ์์ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถํดํ์ง ์๊ณ ๋ ์
๋ฐ์ดํธ ๋๋ ๋ณต๊ตฌ๋ฅผ ์ํด ์ ํ๋ฆฌ์ผ์ด์
์ ์ผ๋ถ๋ฅผ ๋ถํดํ๋ ๊ธฐ๋ฅ์ ์ค์ ์ ๋๋ค. ์ด๋ฌํ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์ ์ธ์๋ ์๋น์ค ์งํฅ ์ํคํ
์ฒ(SOA)์ ๊ฑฐ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฉํฐํ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ณต์ ํ ์ ์๋ค.
๊ณ์ธต ๋ฐ ์ด๋ฏธ์ง ๋ฒ์ ์ ์ด
๊ฐ Docker ์ด๋ฏธ์ง ํ์ผ์ ์ผ๋ จ์ ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ด๋ฌํ ๊ณ์ธต๋ค์ ๋จ์ผ ์ด๋ฏธ์ง๋ก ๊ฒฐํฉ๋ฉ๋๋ค. ๊ณ์ธต์ ์ด๋ฏธ์ง๊ฐ ๋ณ๊ฒฝ๋ ๋ ์์ฑ๋๊ณ , ์ฌ์ฉ์๊ฐ ์คํ ๋๋ ๋ณต์ฌ์ ๊ฐ์ ๋ช
๋ น์ ์ง์ ํ ๋๋ง๋ค ์ ๊ณ์ธต์ด ์์ฑ๋๋ค.
Docker๋ ์ด๋ฌํ ๊ณ์ธต์ ์ฌ์ฌ์ฉํ์ฌ ์ ์ปจํ
์ด๋๋ฅผ ๊ตฌ์ถํ๋๋ฐ, ์ด๋ ๊ตฌ์ถ ํ๋ก์ธ์ค ์๋๊ฐ ๋นจ๋ผ์ง๋ค. ์ค๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฏธ์ง ๊ฐ์ ๊ณต์ ๋๋ฏ๋ก ์๋์ ํฌ๊ธฐ, ํจ์จ์ฑ์ด ๋์ฑ ํฅ์๋ฉ๋๋ค. ๋ํ ๊ณ์ธตํ์๋ ๋ฒ์ ์ ์ด๊ฐ ๋ด์ฌ๋์ด ์๋ค. ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋๋ง๋ค ๋ณ๊ฒฝ ๋ก๊ทธ๊ฐ ๊ธฐ๋ณธ ์ ๊ณต๋๋ฏ๋ก ์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ์๋ฒฝํ๊ฒ ์ ์ดํ ์ ์๋ค.
๋กค๋ฐฑ
๊ณ์ธตํ์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ์๋ง ๋กค๋ฐฑ ๊ธฐ๋ฅ์ผ ๊ฒ์ด๋ค. ๋ชจ๋ ์ด๋ฏธ์ง์๋ ๊ณ์ธต์ด ์๋ค. ํ์ฌ์ ์ด๋ฏธ์ง ๋ฐ๋ณต์ด ์ ์ ํ์ง ์์ ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ ์์ผ ๊ฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ง์ํ๋ฉฐ ํด ๊ด์ ์์ ์ค์ ๋ก ์ง์์ ํตํฉ ๋ฐ ๋ฐฐํฌ(CI/CD)๋ฅผ ์ํํ๋ ๋ฐ ๋์์ ์ค๋ค.
์ ์ํ ๋ฐฐํฌ
์ด์ ์๋ ์๋ก์ด ํ๋์จ์ด๋ฅผ ํ๋ณด, ์คํ, ํ๋ก๋น์ ๋, ์ ๊ณตํ๋ ๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ ธ์ผ๋ฉฐ, ์ด๋ฅผ ์ํ ์์
๋ฐ ์ค๋ฒํค๋ ๋ถ๋ด๋ ์๋นํ๋ค. Docker ๊ธฐ๋ฐ ์ปจํ
์ด๋๋ ๋ฐฐํฌ ์๊ฐ์ ๋ช ์ด๋ก ์ค์ผ ์ ์๋ค. ๊ฐ ํ๋ก์ธ์ค์ ๋ํ ์ปจํ
์ด๋๋ฅผ ์์ฑํ๋ฉด ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋น ๋ฅด๊ฒ ๊ณต์ ํ ์ ์๋ค. ๋ํ ์ปจํ
์ด๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ํ๊ธฐ ์ํด ์ด์ ์ฒด์ ๋ฅผ ๋ถํ
ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ฐฐํฌ ์๊ฐ์ด ์๋นํ ๋จ์ถ๋๋ค. ๋ฐฐํฌ ์๊ฐ์ด ๋จ์ถ๋๋ฉด ์ปจํ
์ด๋์์ ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๋น์ฉ ํจ์จ์ ์ผ๋ก ์์ฑํ๊ณ ์ ๊ฑฐํ ์ ์๋ค.
๋ฐ๋ผ์ Docker ๊ธฐ์ ์ ํจ์จ์ฑ์ ๋์ฑ ์ค์์ํ๋ฉฐ ๋์ฑ ์ธ๋ถํ๋๊ณ ์ ์ด ๊ฐ๋ฅํ ๋ง์ดํฌ๋ก์๋น์ค ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ด๋ค.
3. Doker ์ฌ์ฉ๋ฐฉ๋ฒ
1) Docker ์ค์น:
Docker๋ ๋๋ถ๋ถ์ ์ฃผ์ OS(Windows, MacOS, Linux)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ณต์ ์ฌ์ดํธ์์ ์ ์ ํ ๋ฒ์ ์ ๋ค์ด๋ก๋ํ๊ณ ์ค์น.
2) Docker ์ด๋ฏธ์ง์ ์ปจํ
์ด๋:
โค ์ด๋ฏธ์ง: ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ทธ ์คํ ํ๊ฒฝ์ ํฌํจํ๋ ํ
ํ๋ฆฟ์
๋๋ค.
โค ์ปจํ
์ด๋: ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋๋ ์ธ์คํด์ค์
๋๋ค.
3) ๊ธฐ๋ณธ ๋ช
๋ น์ด:
โค ์ด๋ฏธ์ง ๋ค์ด๋ก๋: docker pull [์ด๋ฏธ์ง ์ด๋ฆ]
โค ์ด๋ฏธ์ง ๋ชฉ๋ก ํ์ธ: docker images
โค ์ปจํ
์ด๋ ์์ฑ ๋ฐ ์คํ: docker run [์ด๋ฏธ์ง ์ด๋ฆ]
โค ์คํ ์ค์ธ ์ปจํ
์ด๋ ํ์ธ: docker ps
โค ๋ชจ๋ ์ปจํ
์ด๋ ํ์ธ: docker ps -a
โค ์ปจํ
์ด๋ ์ข
๋ฃ: docker stop [์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ]
โค ์ปจํ
์ด๋ ์ญ์ : docker rm [์ปจํ
์ด๋ ID ๋๋ ์ด๋ฆ]
โค ์ด๋ฏธ์ง ์ญ์ : docker rmi [์ด๋ฏธ์ง ์ด๋ฆ]
4) Dockerfile:
Docker ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์คํฌ๋ฆฝํธ ํ์ผ์ ๋๋ค.
Dockerfile์ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ํ๊ฒฝ์ ์ ์ํ๊ณ docker build ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
5) Docker Compose:
์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ํจ๊ป ๊ด๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. docker-compose.yml ํ์ผ์ ์ฌ๋ฌ ์๋น์ค๋ฅผ ์ ์ํ๊ณ , ๋จ์ผ ๋ช ๋ น์ด๋ก ๊ทธ๋ฃนํ๋ ์ปจํ ์ด๋๋ฅผ ์์ฑ,
์์, ์ค์งํ ์ ์์ต๋๋ค.
์ฐธ์กฐ URL : https://www.redhat.com/ko/topics/containers/what-is-docker
Docker๋? What is docker? ๋์ปค ์ปจํ ์ด๋, docker container ์คํ
๋์ปค๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ์ ์ํ ์ปจํ ์ด๋ ๊ธฐ์ ์ ๋ปํฉ๋๋ค. ์คํ์์ค Docker๋ ์ปจํ ์ด๋๋ฅผ ๊ฒฝ๋ํ๋ ๋ชจ๋์ ๊ฐ์ ๋จธ์ ์ฒ๋ผ ๋ค๋ฃฐ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
www.redhat.com

๋ง๋ค.. ๋ ์ด์ ๋ ์ด์ ๋ฌผ๋ฌ๋ ๊ณณ์ด ์๋ค..!
16๊ธฐ ๋ง๋ฌด๋ฆฌ ์ํด๋ด์ผํ๋ต !
์ค์ ํ๋ก์ ํธ๋ค.. 6์ฃผ ์ด์ฌํํด์ผ์ง 6_6..