[Docker] ๐ ๋์ปค๋?
๐ Server
์๋ฒ๋ - ์ด๋ค ์๋น์ค(Service)๋ฅผ ์ ๊ณต(Serve)ํ๋ ๊ฒ์ด๋ค.
์ด๋, ์๋ฒ๋ ๊ธฐ๋ฅ์ ์๋ฏธ์ ์๋ฒ
์ ๋ฌผ๋ฆฌ์ ์ปดํจํฐ๋ก์์ ์๋ฒ
๋ก ๋๋์ด์ง๋ค.
๐ ๊ธฐ๋ฅ์ ์๋ฏธ์ ์๋ฒ
์น์๋ฒ, ๋ฉ์ผ์๋ฒ์ ๊ฐ์ด ๋งํ ๋, ์ด๋ ๊ธฐ๋ฅ์ ์๋ฏธ์ ์๋ฒ๋ฅผ ๋ํ๋ธ๋ค.
๐ ๋ฌผ๋ฆฌ์ ์ปดํจํฐ๋ก์์ ์๋ฒ
์ฑ
์์์ ์ ๊ธฐ์ฝ๋์ ๊ฝํ ์๋ ์๋ฒ์ ๊ฐ์ด ๋งํ ๋, ์ด๋ ๋ฌผ๋ฆฌ์ ์ปดํจํฐ๋ก์์ ์๋ฒ๋ฅผ ๋ํ๋ธ๋ค.
๋ฐ์คํฌํฑ ์ปดํจํฐ์ฒ๋ผ ์ด๋๊ฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ๋ ์ปดํจํฐ์ด๋ค.
๐ Docker
๋ฐ์ดํฐ ๋๋ ํ๋ก๊ทธ๋จ์ ๊ฒฉ๋ฆฌ์ํค๋ ๊ธฐ๋ฅ
์ ์ ๊ณตํ๋ ์ํํธ์จ์ด
๋์ปค๋ ์๋ฒ์์ ์ฌ์ฉํ๋ ์ํํธ์จ์ด๋ก ์ปจํ ์ด๋์ ๋์ปค์์ง, ์ด๋ฏธ์ง ๋ฑ์ด ์๋ค.
๊ฐ ํ๋ก๊ทธ๋จ์ ๋๋๊ธฐ ์ํด์ ๊ฐ์ํ ๊ธฐ์ ๊ณผ ๋์ปค ๋๊ฐ์ง๊ฐ ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ด์์ฒด์ ๋ ์ปค๋ ๋ถ๋ถ๊ณผ ๊ทธ ์ฃผ์ ๋ถ๋ถ์ผ๋ก ๋๋์ด์ง๋ค.
VMWare
๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ํ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฌผ๋ฆฌ ์๋ฒ๋ฅผ ๋ง๋ค์ด์, ๋ฉ์ธ๋ณด๋, CPU, ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ๋ถํ์ ์ํํธ์จ์ด๋ก ๊ตฌํํ๋ค.
๋ฐ๋ผ์, ๊ฐ์ ๋จธ์ ์๋ ์ปค๋๋ถ๋ถ๊ณผ ๊ทธ ์ฃผ์๋ถ๋ถ์ด ๋ค ํฌํจ๋์ด ์๋ค.
ํ์ OS์ ์๊ด์์ด ์๋ฌด ์ด์์ฒด์ ๋ ์ค์น๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๊ฐ์๋จธ์ ๋ผ๋ฆฌ๋ ์๋ฒฝํ๊ฒ ๋
๋ฆฝ๋๋ค.
๋์ปค๋ ์ปจํ
์ด๋์ ์ด์์ฒด์ ์ ์ฃผ์ ๋ถ๋ถ๋ง ๋ค์ด๊ฐ๋ค.
๋ฌด์กฐ๊ฑด ๋ฆฌ๋
์ค ์ด์์ฒด์ ์์๋ง ์๋๋๋ฉฐ, ๋ง์ฝ ์ปจํ
์ด๋์์ ๋์ปค์์ง์ ๊ฑด๋๋ฆฌ๋ฉด ๋ค๋ฅธ ์ปจํ
์ด๋๋ ์ํฅ์ ๋ฐ์ ์ ์๋ค.
๐ ๋์ปค์ ๊ตฌ์กฐ
- ๋์ปค ์์ง
- ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ฉฐ ์ ์ดํ ์ ์๊ฒ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋์ปค์ ํ๋ก์ ํธ
- ์ด๋ฏธ์ง
- ์ปจํ ์ด๋๋ฅผ ์์ฑํ ๋ ํ์ํ ์์๋ก, ๊ฐ์๋จธ์ ์ ์์ฑํ ๋ ์ฌ์ฉํ๋ iso ํ์ผ๊ณผ ๋น์ทํ๋ค.
- ์ปจํ
์ด๋
- ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋ก ๊ฒฉ๋ฆฌ๋ ์์คํ ์์ ๋ฐ ๋คํธ์ํด๋ฅด ์ฌ์ฉํ ์ ์๋ ๋ ๋ฆฝ๋ ๊ณต๊ฐ
๐ ๋์ปค์ ์ฅ๋จ์
- ์ฅ์
- ํ๋์ ๋ฌผ๋ฆฌ ์๋ฒ์ ์ฌ๋ฌ๋์ ์๋ฒ๋ฅผ ๋์ธ ์ ์๋ค.
- ์๋ฒ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๋ค
- ์๋ฒ ๊ณ ์๊ฐ ์๋์ด๋ ๋ค๋ฃจ๊ธฐ ์ฝ๋ค.
- ๋จ์
- ๋ฆฌ๋ ์ค ์ํํธ์จ์ด๋ง ์ง์ํ๋ค.
- ํธ์คํธ ์๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ชจ๋ ์ปจํ ์ด๋์ ์ํฅ์ด ๋ฏธ์น๋ค.
- ์ฃผ ์ฉ๋
- ํ์ ๋ชจ๋์๊ฒ ๋์ผํ ๊ฐ๋ฐ ํ๊ฒฝ ์ ๊ณต(=๋์ผํ ํ๊ฒฝ ์ฌ๋ฌ๊ฐ ์์ฑ)
- ์๋ก์ด ๋ฒ์ ์ ํ ์คํธ(=๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ ์ด์ฉ)
- ๋์ผํ ์๋ฒ๊ฐ ์ฌ๋ฌ๋ ํ์ํ ๊ฒฝ์ฐ(=์ปจํ ์ด๋ ๋ฐ๊ณผ ๋ ๋ฆฝ๋ ์ฑ์ง ์ด์ฉ)
๋ฐ์ดํฐ๋ ํ๋ก๊ทธ๋จ์ ๋ ๋ฆฝ๋ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌํด์ผํ๋ ์ด์ ?
- ํ๋ก๊ทธ๋จ์ ๋จ๋ ์ผ๋ก ๋์๋์ง ์๊ณ ์ด๋ ์คํ ํ๊ฒฝ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ด์ฉํด ๋์ํ๋ค.
- ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก ํน์ ํ ํด๋๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ณต์ ํ๋๋ฐ, ์ด๋ ํ๋ก๊ทธ๋จ ํ๋๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๋ ์ํฅ์ ๋ผ์น๊ฒ ๋๋ค.
- ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด A์ B๊ฐ ์๋ก
Java 5.0
๋ฒ์ ์ ์๊ตฌํ๋ค๊ฐ, ์์คํ B๊ฐ ์ ๋ฐ์ดํธ๋ฅผ ์งํํ๋ฉด์Java 8.0์
์๊ตฌํ๊ฒ ๋ฐ๋๋ฉด, ์์คํ A๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. - ๋ฐ๋ผ์, ์ค๊ณ ๋ฐ ๊ฐ๋ฐ๋จ๊ณ์์๋ ์๋ฌด๋ฐ ์ค๋ฅ๊ฐ ์์๋ ํ๋ก๊ทธ๋จ์ด ์ค์ ๋ก ์ค์นํ๋ฉด ์ค๋ฅ๋ฅผ ์ผ์ผํค๋๋ฐ, ๋๋ถ๋ถ์ ๋ฌธ์ ์ ์์ธ์
ํ๋ก๊ทธ๋จ๊ฐ์ ๊ณต์
๋ก ๋ฐ์ํ๋ค.
-> A๊ฐ Java 5.0
, B๊ฐ Java 8.0
์ ์ฌ์ฉํ๋ค๋ฉด ์ด๋ค์ ๋ฐ๋ก ์ธํธ๋ก ๋ฌถ์ด์ ๊ฒฉ๋ฆฌํ๋ฉด ๋๋ค.
๐ ๋์ปค ์ปจํ ์ด๋ ์์ ์ฃผ๊ธฐ
์ปจํ
์ด๋๋ ์ฐ๊ณ ๋ฒ๋ฆฌ๋ ์ผํ์ฉํ
์ ๊ฐ๋
์ด๋ค.
์๋ก์ด ๋ฒ์ ์ด ๋์ค๋ฉด ์ปจํ
์ด๋๋ฅผ ๊ณ์ ์
๋ฐ์ดํธ ํ๋ฉด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋, ๊ธฐ์กด ์ปจํ
์ด๋๋ ์ญ์ ํ๊ณ ์๋ก์ด ์ปจํ
์ด๋๋ฅผ ์์ฑํ๋ค.
์ปจํ ์ด๋์ ์์ ์ฃผ๊ธฐ - ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๊ณ , ์คํํ๊ณ , ์ข ๋ฃํ๊ณ , ํ๊ธฐํ ํ, ๋ค์ ์ปจํ ์ด๋๋ฅผ ๋ง๋๋ ์ผ๋ จ์ ๊ณผ์
๐ ๋ฐ์ดํฐ ์ ์ฅ
๋์ปค ์ปจํ
์ด๋๋ฅผ ์ญ์ ํ ๋, ์ปจํ
์ด๋ ์์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ๋ค์ ๋น์ฐํ ์ฌ๋ผ์ง๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ์ฌ ๋ณดํต ๋์ปค๊ฐ ์ค์น๋๋ ๋ฌผ๋ฆฌ์ ์๋ฒ(ํธ์คํธ)์ ๋์คํฌ๋ฅผ ๋ง์ดํธํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
๋ง์ดํธ๋?
- ๋์คํฌ๋ฅผ ์ฐ๊ฒฐํด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ ์ ์๋๋ก ํ ์ํ
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐