์ ๋ ์น ํ๋ก์ ํธ์ ๊ฐ๋ฐ/์ ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์กฐํํ๊ธฐ ์ํด ๋ช ๋ฌ ๋์ Docker๋ฅผ ์ฌ์ฉํด ์์ต๋๋ค. ๋๋ Habrakhabr ๋ ์๋ค์๊ฒ docker์ ๋ํ ์๊ฐ ๊ธฐ์ฌ์ ๋ฒ์ญ์ ์ ๊ณตํฉ๋๋ค. .
๋์ปค๋ ๋ฌด์์ ๋๊น?
Docker๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐ, ์ ๊ณต, ์ด์ํ๊ธฐ ์ํ ๊ฐ๋ฐฉํ ํ๋ซํผ์
๋๋ค. Docker๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ ์ธํ๋ผ์์ ๋ถ๋ฆฌํ๊ณ ์ธํ๋ผ๋ฅผ ๊ด๋ฆฌํ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Docker๋ ์ฝ๋๋ฅผ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๊ณ , ๋ ๋น ๋ฅด๊ฒ ํ
์คํธํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์
์ ๋ ๋น ๋ฅด๊ฒ ์ ๊ณตํ๊ณ , ์ฝ๋ ์์ฑ๊ณผ ์ฝ๋ ์คํ ์ฌ์ด์ ์๊ฐ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Docker๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ด๋ฆฌํ๊ณ ํธ์คํ
ํ๋ ๋ฐ ๋์์ด ๋๋ ํ๋ก์ธ์ค์ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๋ ์ปจํ
์ด๋ ๊ฐ์ํ ํ๋ซํผ์ ํตํด ์ด๋ฅผ ์ํํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ
์ด๋์ ์์ ํ๊ฒ ๊ฒฉ๋ฆฌ๋ ๊ฑฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ ์ ์์ต๋๋ค. ๋ณด์ ๊ฒฉ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ํธ์คํธ์์ ๋์์ ๋ง์ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. ํ์ดํผ๋ฐ์ด์ ์ ์ถ๊ฐ ๋ถ๋ด ์์ด ์คํ๋๋ ์ปจํ
์ด๋์ ๊ฒฝ๋ ํน์ฑ์ ํตํด ํ๋์จ์ด๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ๊ฐ์ํ ํ๋ซํผ ๋ฐ ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ (๋ฐ ์ฌ์ฉํ๋ ๊ตฌ์ฑ ์์)์ ๋์ปค ์ปจํ ์ด๋์ ํจํค์งํฉ๋๋ค.
- ๊ฐ๋ฐ ๋ฐ ํ ์คํธ๋ฅผ ์ํด ์ด๋ฌํ ์ปจํ ์ด๋๋ฅผ ํ์ ๋ฐฐํฌ ๋ฐ ์ ๋ฌํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ผํฐ์ ํด๋ผ์ฐ๋ ๋ชจ๋์ ์์ฐ ํ์ฅ์ ์ด๋ฌํ ์ปจํ ์ด๋๋ฅผ ๋ฐฐ์นํฉ๋๋ค.
๋์ปค๋ฅผ ์ด๋์ ์ฌ์ฉํ ์ ์๋์?
์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ฒ ๊ฒ์ํ์ธ์
Docker๋ ๊ฐ๋ฐ ์ฃผ๊ธฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋น์ค์ ํจ๊ป ๋ก์ปฌ ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ ์ํฌํ๋ก ํ๋ก์ธ์ค์ ํตํฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๊ฐ๋ฐ์๋ ๋ก์ปฌ์์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๊ฐ๋ฐ ์คํ(Docker ์ด๋ฏธ์ง ์ธํธ)์ ๋๋ฃ์ ๊ณต์ ํฉ๋๋ค. ์ค๋น๊ฐ ๋๋ฉด ์ฝ๋์ ์ปจํ ์ด๋๋ฅผ ํ ์คํธ ์ฌ์ดํธ์ ํธ์ํ๊ณ ํ์ํ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค. ํ ์คํธ ์ฌ์ดํธ์์ ์ฝ๋์ ์ด๋ฏธ์ง๋ฅผ ํ๋ก๋์ ํ๊ฒฝ์ผ๋ก ๋ณด๋ผ ์ ์์ต๋๋ค.
๋ ์ฝ๊ฒ ๋ฐฐ์นํ๊ณ ํผ์น๊ธฐ
Docker ์ปจํ ์ด๋ ๊ธฐ๋ฐ ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด ํ์ด๋ก๋๋ฅผ ์ฝ๊ฒ ํฌํ ํ ์ ์์ต๋๋ค. Docker ์ปจํ ์ด๋๋ ์ค์ ๋ก์ปฌ ๋จธ์ ์ด๋ ๋ฐ์ดํฐ ์ผํฐ์ ๊ฐ์ ๋จธ์ ๋๋ ํด๋ผ์ฐ๋์ ๋ก์ปฌ ๋จธ์ ์์ ์คํ๋ ์ ์์ต๋๋ค.
Docker์ ์ด์์ฑ๊ณผ ๊ฒฝ๋ ํน์ฑ์ผ๋ก ์ธํด ์ํฌ๋ก๋๋ฅผ ๋์ ์ผ๋ก ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. Docker๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๊ฑฐ๋ ์ข ๋ฃํ ์ ์์ต๋๋ค. Docker์ ์๋ ๋๋ถ์ ์ด ์์ ์ ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
๋ ๋์ ๋ก๋์ ๋ ๋ง์ ํ์ด๋ก๋
Docker๋ ๊ฐ๋ณ๊ณ ๋น ๋ฆ ๋๋ค. ์ด๋ ํ์ดํผ๋ฐ์ด์ ๊ธฐ๋ฐ ๊ฐ์ ๋จธ์ ์ ๋ํ ํ๋ ฅ์ ์ด๊ณ ๋น์ฉ ํจ์จ์ ์ธ ๋์์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ฒด ํด๋ผ์ฐ๋๋ Platform-as-Service๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๋ถํ๊ฐ ๋์ ํ๊ฒฝ์์ ํนํ ์ ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ณด์ ํ ๋ฆฌ์์ค๋ฅผ ์ต๋ํ ํ์ฉํ๋ ค๋ ์ค์ ๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ์ ์ฉํฉ๋๋ค.
์ฃผ์ ๋์ปค ๊ตฌ์ฑ์์
Docker๋ ๋ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Docker: ์คํ ์์ค ๊ฐ์ํ ํ๋ซํผ์ ๋๋ค.
- Docker Hub: Docker ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋น์ค๋ก์์ ํ๋ซํผ์ ๋๋ค.
๋ฉ๋ชจ! Docker๋ Apache 2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
๋์ปค ์ํคํ ์ฒ
Docker๋ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Docker ํด๋ผ์ด์ธํธ๋ ์ปจํ ์ด๋ ์์ฑ, ์คํ ๋ฐ ๋ฐฐํฌ ์์ ์ ๋ด๋นํ๋ Docker ๋ฐ๋ชฌ๊ณผ ํต์ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ๋ชจ๋ ๋์ผํ ์์คํ ์์ ์คํ๋ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ๋ฅผ ์๊ฒฉ docker ๋ฐ๋ชฌ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ์์ผ์ด๋ RESTful API๋ฅผ ํตํด ํต์ ํฉ๋๋ค.

๋์ปค ๋ฐ๋ชฌ
๋ค์ด์ด๊ทธ๋จ์ ํ์๋ ๋๋ก ๋ฐ๋ชฌ์ ํธ์คํธ ์์คํ ์์ ์คํ๋ฉ๋๋ค. ์ฌ์ฉ์๋ ์๋ฒ์ ์ง์ ์ํธ ์์ฉํ์ง ์์ง๋ง ์ด๋ฅผ ์ํด ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋์ปค ํด๋ผ์ด์ธํธ
Docker ํ๋ก๊ทธ๋จ์ธ Docker ํด๋ผ์ด์ธํธ๋ Docker์ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค์ ๋๋ค. ์ฌ์ฉ์๋ก๋ถํฐ ๋ช ๋ น์ ๋ฐ๊ณ docker ๋ฐ๋ชฌ๊ณผ ์ํธ ์์ฉํฉ๋๋ค.
๋์ปค ๋ด๋ถ
Docker๊ฐ ๋ฌด์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ์ดํดํ๋ ค๋ฉด ๋ค์ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์์ ๋ํด ์์์ผ ํฉ๋๋ค.
- ์ด๋ฏธ์ง
- ๊ธฐ์ฌ
- ์ฉ๊ธฐ
์ด๋ฏธ์ง
Docker ์ด๋ฏธ์ง๋ ์ฝ๊ธฐ ์ ์ฉ ํ ํ๋ฆฟ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฏธ์ง์๋ ์ด์ ์ฒด์ ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. Ubuntu Apache ์๋ฒ์ ๊ทธ ์์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ , ๊ธฐ์กด ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋, ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง๋ Docker ๋น๋ ํ๋ก์ธ์ค์ ๊ตฌ์ฑ ์์์ ๋๋ค.
๋ ์ง์คํฐ
Docker ๋ ์ง์คํธ๋ฆฌ๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์ ๋ก๋ํ ์ ์๋ ๊ณต๊ฐ ๋ฐ ๋น๊ณต๊ฐ ๋ ์ง์คํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ณต๊ฐ Docker ๋ ์ง์คํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. . ๊ฑฐ๊ธฐ์๋ ์์ฒญ๋ ์์ ์ด๋ฏธ์ง ๋ชจ์์ด ์ ์ฅ๋์ด ์์ต๋๋ค. ์์๋ค์ํผ ์ด๋ฏธ์ง๋ ๋ณธ์ธ์ด ๋ง๋ค ์๋ ์๊ณ ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ ์ง์คํธ๋ฆฌ๋ ๋ฐฐํฌ ๊ตฌ์ฑ ์์์ ๋๋ค.
์ปจํ ์ด๋
์ปจํ ์ด๋๋ ๋๋ ํฐ๋ฆฌ์ ์ ์ฌํฉ๋๋ค. ์ปจํ ์ด๋์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ฐ ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง์์ ์์ฑ๋ฉ๋๋ค. ์ปจํ ์ด๋๋ฅผ ์์ฑ, ์์, ์ค์ง, ๋ง์ด๊ทธ๋ ์ด์ ๋๋ ์ญ์ ํ ์ ์์ต๋๋ค. ๊ฐ ์ปจํ ์ด๋๋ ๊ฒฉ๋ฆฌ๋์ด ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ณด์ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ์ปจํ ์ด๋๋ ์์ ์ ๊ตฌ์ฑ ์์์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด Docker๋ ์ด๋ป๊ฒ ์๋ํ๋์?
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ ๋ค์์ ์๊ณ ์์ต๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์นํ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ด๋ฏธ์ง์์ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค.
- Docker Hub ๋๋ ๋ค๋ฅธ ์ด๋ฏธ์ง ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ตฌ์ฑ ์์๊ฐ ์ด๋ป๊ฒ ๊ฒฐํฉ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฏธ์ง๋ ์ด๋ป๊ฒ ์๋ํ๋์?
์ฐ๋ฆฌ๋ ์ด๋ฏธ์ง๊ฐ ์ปจํ ์ด๋๊ฐ ์์ฑ๋๋ ์ฝ๊ธฐ ์ ์ฉ ํ ํ๋ฆฟ์ด๋ผ๋ ๊ฒ์ ์ด๋ฏธ ์๊ณ ์์ต๋๋ค. ๊ฐ ์ด๋ฏธ์ง๋ ์ผ๋ จ์ ๋ ๋ฒจ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋์ปค๋ ์ด๋ฌํ ๋ ๋ฒจ์ ํ๋์ ์ด๋ฏธ์ง๋ก ๊ฒฐํฉํฉ๋๋ค. ์ ๋์จ ํ์ผ ์์คํ ์ ์ฌ์ฉํ๋ฉด ์๋ก ๋ค๋ฅธ ํ์ผ ์์คํ (๋ค๋ฅธ ๋ถ๊ธฐ)์ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ํฌ๋ช ํ๊ฒ ๊ฒน์ณ ์ผ๊ด๋ ํ์ผ ์์คํ ์ ๋ง๋ค ์ ์์ต๋๋ค.
Docker๊ฐ ๊ฐ๋ฒผ์ด ์ด์ ์ค ํ๋๋ ์ด์ ๊ฐ์ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ ๋ฑ ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ ๋ ์ด์ด๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ๋จธ์ ์์์ฒ๋ผ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ๊ฑฐ๋ ๋ค์ ๊ตฌ์ถํ์ง ์๊ณ ๋ ๋ ์ด์ด๋ง ์ถ๊ฐ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ๋ฐฐํฌํ ํ์ ์์ด ์ ๋ฐ์ดํธ๋ง ๋ฐฐํฌ๋๋ฏ๋ก ์ด๋ฏธ์ง ๋ฐฐํฌ๊ฐ ๋์ฑ ์ฝ๊ณ ๋นจ๋ผ์ง๋๋ค.
๋ชจ๋ ์ด๋ฏธ์ง์ ํต์ฌ์๋ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ubuntu๊ธฐ๋ณธ ์ด๋ฏธ์ง UbuntuApache ๋๋ Fedora๋ Fedora ๋ฐฐํฌํ์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Apache ์ด๋ฏธ์ง๊ฐ ์๋ค๋ฉด ์ด๋ฅผ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ! Docker๋ ์ผ๋ฐ์ ์ผ๋ก Docker Hub ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
Docker ์ด๋ฏธ์ง๋ ์ด๋ฌํ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์์ ์์ฑ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฌํ ์ด๋ฏธ์ง ์์ฑ ์ง์นจ์ ํธ์ถํ๋ ๋จ๊ณ๋ฅผ ํธ์ถํฉ๋๋ค. ๊ฐ ๋ช ๋ น์ ์๋ก์ด ์ด๋ฏธ์ง๋ ๋ ๋ฒจ์ ์์ฑํฉ๋๋ค. ์ง์นจ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ช ๋ น์ ์คํ
- ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ ์ถ๊ฐ
- ํ๊ฒฝ ๋ณ์ ์์ฑ
- ์ด ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๊ฐ ์์๋ ๋ ์คํํ ์์ ์ ๋ํ ์ง์นจ
์ด ์ง์นจ์ ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. Dockerfile. Docker๋ ์ด๊ฒ์ ์ฝ์ต๋๋ค. Dockerfile, ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ ๋ ์ด๋ฌํ ์ง์นจ์ ์คํํ๊ณ ์ต์ข
์ด๋ฏธ์ง๋ฅผ ๋ฐํํฉ๋๋ค.
๋์ปค ๋ ์ง์คํธ๋ฆฌ๋ ์ด๋ป๊ฒ ์๋ํ๋์?
๋ ์ง์คํธ๋ฆฌ๋ Docker ์ด๋ฏธ์ง์ ์ ์ฅ์์ ๋๋ค. ์ด๋ฏธ์ง๊ฐ ์์ฑ๋๋ฉด ๊ณต์ฉ Docker Hub ๋ ์ง์คํธ๋ฆฌ ๋๋ ๊ฐ์ธ ๋ ์ง์คํธ๋ฆฌ์ ๊ฒ์ํ ์ ์์ต๋๋ค.
Docker ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฏธ ๊ฒ์๋ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ๊ณ ์ด๋ฅผ Docker ๋จธ์ ์ ๋ค์ด๋ก๋ํ์ฌ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Docker Hub๋ ๊ณต๊ฐ ๋ฐ ๋น๊ณต๊ฐ ์ด๋ฏธ์ง ์ ์ฅ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋๊ตฌ๋ ๊ณต๊ฐ ์ ์ฅ์์์ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ๊ณ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๊ฐ์ธ ์ ์ฅ์์ ์ฝํ ์ธ ๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ํฌํจ๋์ง ์์ต๋๋ค. ๊ทํ์ ๊ทํ์ ์ฌ์ฉ์๋ง์ด ์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ ์์ ํ๊ณ ์ด๋ฅผ ํตํด ์ปจํ ์ด๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋๋ ์ด๋ป๊ฒ ์๋ํ๋์?
์ปจํ ์ด๋๋ ์ด์ ์ฒด์ , ์ฌ์ฉ์ ํ์ผ, ๋ฉํ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ฏ์ด ๊ฐ ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง์์ ์์ฑ๋ฉ๋๋ค. ์ด ์ด๋ฏธ์ง๋ Docker์๊ฒ ์ปจํ ์ด๋์ ๋ฌด์์ด ์๋์ง, ์์ํ ํ๋ก์ธ์ค, ์ปจํ ์ด๋๊ฐ ์์๋๋ ์๊ธฐ ๋ฐ ๊ธฐํ ๊ตฌ์ฑ ๋ฐ์ดํฐ๋ฅผ ์๋ ค์ค๋๋ค. Docker ์ด๋ฏธ์ง๋ ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค. docker๊ฐ ์ปจํ ์ด๋๋ฅผ ์์ํ๋ฉด ์ด๋ฏธ์ง ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ์ ์๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ ์ด์ด๊ฐ ์์ฑ๋ฉ๋๋ค(์์์ ์ค๋ช ํ ๋๋ก ํตํฉ ํ์ผ ์์คํ ์ฌ์ฉ).
์ปจํ ์ด๋๊ฐ ์์๋๋ฉด ์ด๋ป๊ฒ ๋๋์?
์๋๋ฉด ํ๋ก๊ทธ๋จ์ ์ด์ฉํด์ docker๋๋ RESTful API๋ฅผ ์ฌ์ฉํ์ฌ docker ํด๋ผ์ด์ธํธ๋ docker ๋ฐ๋ชฌ์๊ฒ ์ปจํ
์ด๋๋ฅผ ์์ํ๋ผ๊ณ ์ง์ํฉ๋๋ค.
$ sudo docker run -i -t ubuntu /bin/bash
์ด ๋ช
๋ น์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํด๋ผ์ด์ธํธ๋ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์์๋ฉ๋๋ค. docker, ์ต์
ํฌํจ run, ์ด๋ ์ ์ปจํ
์ด๋๊ฐ ์์๋ ๊ฒ์์ ๋ํ๋
๋๋ค. ์ปจํ
์ด๋๋ฅผ ์คํํ๊ธฐ ์ํ ์ต์ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ปจํ
์ด๋๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ด๋ฏธ์ง์
๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ
ubuntu - ์ปจํ
์ด๋๊ฐ ์์๋ ๋ ์คํํ๋ ค๋ ๋ช
๋ น์
๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ
/bin/bash
์ด ๋ช ๋ น์ ์คํํ๋ฉด ๋ด๋ถ์ ์ผ๋ก๋ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์?
Docker๋ ์์๋๋ก ๋ค์์ ์ํํฉ๋๋ค.
- ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค ubuntu: docker๋ ์ด๋ฏธ์ง ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค.
ubuntu๋ก์ปฌ ์ปดํจํฐ์ ์๊ณ ๊ฑฐ๊ธฐ์ ์์ผ๋ฉด ๋ค์์์ ๋ค์ด๋ก๋ํ์ญ์์ค. . ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ๋ง๋ญ๋๋ค. - ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ฏธ์ง๊ฐ ์์ ๋๋ฉด docker๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค.
- ํ์ผ ์์คํ ์ ์ด๊ธฐํํ๊ณ ์ฝ๊ธฐ ์ ์ฉ ๋ ๋ฒจ์ ๋ง์ดํธํฉ๋๋ค: ์ปจํ ์ด๋๋ ํ์ผ ์์คํ ์ ์์ฑ๋๊ณ ์ด๋ฏธ์ง๋ ์ฝ๊ธฐ ์ ์ฉ ์์ค์ ์ถ๊ฐ๋ฉ๋๋ค.
- ๋คํธ์ํฌ/๋ธ๋ฆฌ์ง๋ฅผ ์ด๊ธฐํํฉ๋๋ค. Docker๊ฐ ํธ์คํธ ์์คํ ๊ณผ ํต์ ํ ์ ์๋๋ก ํ๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
- IP ์ฃผ์ ์ค์ : ์ฃผ์๋ฅผ ์ฐพ์์ ์ค์ ํฉ๋๋ค.
- ์ง์ ๋ ํ๋ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ ์์ฑํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ค ์ ๋ ฅ, ์ถ๋ ฅ ๋ฐ ์ค๋ฅ ์คํธ๋ฆผ์ ์ฐ๊ฒฐํ๊ณ ๊ธฐ๋กํ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ์ํ๋๋์ง ์ถ์ ํ ์ ์์ต๋๋ค.
์ด์ ์๋ํ๋ ์ปจํ ์ด๋๊ฐ ์๊ฒผ์ต๋๋ค. ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์งํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ ์ปจํ ์ด๋๋ฅผ ์ญ์ ํ์ธ์.
์ฌ์ฉ ๋ ๊ธฐ์
Docker๋ Go ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ ์ผ๋ถ ์ปค๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค. Linux์์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด.
๋ค์์คํ์ด์ค
Docker๋ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค. namespaces ์ปจํ
์ด๋๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒฉ๋ฆฌ๋ ์์
๊ณต๊ฐ์ ๊ตฌ์ฑํฉ๋๋ค. ์ปจํ
์ด๋๋ฅผ ์์ํ๋ฉด docker๋ ํด๋น ์ปจํ
์ด๋์ ๋ํ ๋ค์์คํ์ด์ค ์ธํธ๋ฅผ ์์ฑํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์ปจํ ์ด๋์ ๊ฐ ์ธก๋ฉด์ด ์์ฒด ๋ค์์คํ์ด์ค์์ ์คํ๋๊ณ ์ธ๋ถ ์์คํ ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฉ๋ฆฌ๋ ๋ ์ด์ด๊ฐ ์์ฑ๋ฉ๋๋ค.
docker๊ฐ ์ฌ์ฉํ๋ ์ผ๋ถ ๋ค์์คํ์ด์ค ๋ชฉ๋ก:
- pid: ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ํด;
- ๊ทธ๋ฌผ: ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ด๋ฆฌ์ฉ
- IPC: IPC ์์์ ๊ด๋ฆฌํฉ๋๋ค. (ICP: ํ๋ก์ธ์ค ๊ฐ ํต์ );
- ๋ฌธ: ๋ง์ดํธ ์ง์ ์ ๊ด๋ฆฌํฉ๋๋ค.
- UTC: ์ปค๋์ ๋ถ๋ฆฌํ๊ณ ๋ฒ์ ์์ฑ์ ์ ์ดํฉ๋๋ค(UTC: Unix ์๊ฐ ๊ณต์ ์์คํ ).
ํต์ ๊ทธ๋ฃน
Docker๋ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค. cgroups ๋๋ ํต์ ๊ทธ๋ฃน. ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฉ๋ฆฌํ์ฌ ์คํํ๋ ํต์ฌ์ ์ ๊ณตํ๋ ค๋ ๋ฆฌ์์ค๋ง ์ ํ๋ฆฌ์ผ์ด์
์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ปจํ
์ด๋๊ฐ ์ข์ ์ด์์ด ๋ ์ ์์ต๋๋ค. ์ ์ด ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋์จ์ด ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ ํ ์ฌํญ์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ปจํ
์ด๋์ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ํํฉ๋๋ค.
์ ๋์จ ํ์ผ ์์คํ
Union File System ๋๋ UnionFS๋ ๋ ์ด์ด๋ฅผ ์์ฑํ์ฌ ์๋ํ๋ ํ์ผ ์์คํ ์ผ๋ก ๋งค์ฐ ๊ฐ๋ณ๊ณ ๋น ๋ฆ ๋๋ค. Docker๋ UnionFS๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๊ฐ ๊ตฌ์ถ๋๋ ๋ธ๋ก์ ์์ฑํฉ๋๋ค. Docker๋ AUFS, btrfs, vfs ๋ฐ DeviceMapper๋ฅผ ํฌํจํ์ฌ UnionFS์ ์ฌ๋ฌ ๋ณํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ํ์
Docker๋ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ์ปจํ
์ด๋ ํ์์ด๋ผ๊ณ ํ๋ ๋ํผ๋ก ๊ฒฐํฉํฉ๋๋ค. ๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. libcontainerDocker๋ ๊ธฐ์กด ์ปจํ
์ด๋ ํ์๋ ์ง์ํฉ๋๋ค. Linux ~์ ๋์์ผ๋ก . ์์ผ๋ก Docker๋ ๋ค๋ฅธ ์ปจํ
์ด๋ ํ์์ ์ง์ํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด BSD Jails ๋๋ Solaris Zones๊ณผ ํตํฉํฉ๋๋ค.
์ถ์ฒ : habr.com
