Docker ์ ์ฒด ํฌ์คํ
[Docker] (1) ๋์ปค ๊ฐ๋ ์ค๋ช | ๋์ปค๋ ์ ์ฌ์ฉํ๋ ๊ฑธ๊น?
[Docker] (2) ๋์ปค & ๋์ปค์ปดํฌ์ฆ ๋ค์ด๋ก๋
[Docker] (3) ๋์ปค ํต์ฌ ๊ฐ๋ - ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋์ปค ํ๋ธ
[Docker] (5) ๋์ปค run ๋ช ๋ น์ด ์ต์ , ๋์ปค ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์ง ์๊ฒ ํ๋ ๋ฐฉ๋ฒ
[Docker] (6) ๋์ปค ์ปจํ ์ด๋๋ก ์ ์ํ๊ธฐ - docker exec & docker attach
[Docker] (7) ๋์ปค volume(๋ณผ๋ฅจ) ์ต์ - ์ปจํ ์ด๋ ํด๋์ ํธ์คํธ ํด๋ ์ฐ๊ฒฐํ๊ธฐ
[Docker] (9) Dockerfile(๋์ปคํ์ผ) - ์ค๋งํธํ๊ฒ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ
[Docker] (10) Dockerfile ๋น๋ ์์ | ENTRYPOINT ์ CMD์ ์ฐจ์ด
[Docker] (11) ๋์ปค ์ปจํ ์ด๋์ vscode ์ฐ๋ํ๊ธฐ | ๋์ปค ์ปจํ ์ด๋์์ ๊ฐ๋ฐ
[Docker] (12) ๊นํ๋ธ๋ก ๋์ปค ์ด๋ฏธ์ง ๊ณต์ ํ๊ธฐ | Packages Container Registry
Dokcer (๋์ปค)

๋์ปค(Docker)๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ํ๋ซํผ์ผ๋ก, ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๊ทธ ์ข ์์ฑ์ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ธ ์ปจํ ์ด๋๋ก ํจํค์งํ์ฌ ์คํํ๋ ๊ธฐ์ ์ด๋ค. ์ด๋ฅผ ํตํด ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์๋ ์ผ๊ด๋๊ฒ ์คํํ ์ ์๊ณ , ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ ์ฌ์ด์ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์๋ค. ๋์ปค ์ปจํ ์ด๋๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ ํ์ฅ์ฑ์ด ์ข์์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
*์ปจํ ์ด๋ : ๊ฐ์ํ ๊ธฐ์ ์ ์ด์ฉํ์ฌ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ์คํํ๋ ๋จ์
๋์ปค ์ปดํฌ์ฆ(Docker Compose)๋ ์ฌ๋ฌ ๊ฐ์ ๋์ปค ์ปจํ ์ด๋๋ฅผ ์ ์ํ๊ณ ์คํํ๊ธฐ ์ํ ๋๊ตฌ๋ก, ํ๋์ ์ค์ ํ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ปจํ ์ด๋ ๊ฐ์ ๋คํธ์ํฌ ๋ฐ ์ข ์์ฑ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ฃผ๋ก ๋ณต์กํ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋์ด ์์ ๋ ์ฌ์ฉํ๋ค.
Virtual Machine vs Docker

์ปจํ ์ด๋ ๊ธฐ์ ์ด ์๋ ๊ธฐ์กด์ ๊ฐ์ํ ๋ฐฉ์์ ์ฃผ๋ก OS๋ฅผ ๊ฐ์ํํ๋ค. VMware, VirtualBox์ ๊ฐ์ ๊ฐ์๋จธ์ ์ ํธ์คํธ OS ์์ ๊ฒ์คํธ OS ์ ์ฒด๋ฅผ ๊ฐ์ํํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋์ปค์ ์ปจํ ์ด๋ ๋ฐฉ์๊ณผ๋ ํฐ ์ฐจ์ด๊ฐ ์๋ค.
- ๊ฐ์๋จธ์
- ๊ฐ์๋จธ์ ์ ํธ์คํธ ์ด์์ฒด์ ์์ ๊ฐ์ํ๋ ํ๋์จ์ด ๊ณ์ธต์ ์์ฑํ๊ณ , ๊ฐ ๊ฐ์ ๋จธ์ ์ ๋ ๋ฆฝ๋ ์ด์์ฒด์ , ์ปค๋, ๋๋ผ์ด๋ฒ ๋ฑ์ ๊ฐ์ง
- ์ด๋ก ์ธํด ๋ฌด๊ฒ๊ณ ๋์ ์์ ์๋น๊ฐ ํ์
- ์ด์์ฒด์ ์ ๋ถํ ๊ณผ์ ์ด ํ์ํ๋ฏ๋ก ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ
- ๋ ๋ฆฝ๋ ์ด์์ฒด์ ๋ฅผ ๊ฐ์ง๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ๊ณต๊ฐ ๋ฑ ์์์ ๋ง์ด ์๋น
- Docker ์ปจํ
์ด๋
- Docker ์ปจํ ์ด๋๋ ํธ์คํธ ์ด์์ฒด์ ์ ์ปค๋์ ๊ณต์ ํ๋ฉฐ, ๊ฐ๋ณ๊ฒ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ ์์ฑ
- ๊ฐ์ ๋จธ์ ๋ณด๋ค ๋ ๊ฐ๋ฒผ์ฐ๋ฉฐ ํจ์จ์ ์ผ๋ก ์คํ
- ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ฒ ์์ฑ๋๋ฉฐ, ์คํ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ
- ์ปจํ ์ด๋๋ ํธ์คํธ ์ด์์ฒด์ ์ ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ๊ฐ๋ณ๊ณ ํจ์จ์ ์ผ๋ก ์์์ ํ์ฉ
๊ฒฐ๋ก ๋ง ์๊ธฐํ๋ฉด ๊ธฐ์กด ๊ฐ์๋จธ์ ์ ๋ฌด๊ฒ๊ณ ๋๋ฆฌ์ง๋ง, ๋์ปค ์ปจํ ์ด๋๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ์คํ๋๋ฉฐ ํธ์คํธ์ ์ด์์ฒด์ ์ ์ปค๋์ ๊ณต์ ํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค๋ ๊ฒ์ด๋ค. ๋ํ ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ๊ด๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
๋์ปค๋ฅผ ์ฌ์ฉํ๋ ์ด์
- ํ๊ฒฝ ์ผ์น์ฑ: ๋ค์ํ ํ๊ฒฝ์์ ๋์ผํ ์คํ ํ๊ฒฝ์ ๋ณด์ฅํ๋ค. ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์ด์ ํ๊ฒฝ์ ์ฐจ์ด๋ก ์ธํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ฉฐ, ์์ฉ ํ๋ก๊ทธ๋จ์ ์ด๋์๋ ์คํํ ์ ์๋ค.
- ํธ๋ฆฌํ ๋ฐฐํฌ: ๋์ปค ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง๋ก ํจํค์ง๋์ด ๋ฐฐํฌ๋๋ฏ๋ก, ์ดํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๊ฐ ๊ฐ๋จํด์ง๋ค. ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ๋ฐฐํฌํ ๋ ์ฉ์ดํ๋ฉฐ, ๋น ๋ฅธ ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.
- ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ: ๋์ปค๋ ๊ฐ ์ปจํ ์ด๋๋ฅผ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ผ๋ก ์คํํ๋ฏ๋ก, ํ๋์ ์ปจํ ์ด๋์์ ๋ฐ์ํ ๋ฌธ์ ๊ฐ ๋ค๋ฅธ ์ปจํ ์ด๋์ ์ํฅ์ ์ฃผ์ง ์๋๋ค.
- ์์ ํจ์จ์ฑ: ๊ฐ์ ๋จธ์ ๊ณผ ๋น๊ตํด ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๋ฉฐ, ํธ์คํธ ์์คํ ์ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ ์ ์๋ค.
- ์ค์ผ์ผ๋ง: ์ปจํ ์ด๋ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ ์ฌ์ด ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅํ์ฌ ์๊ตฌ์ ๋ฐ๋ผ ์์ฉ ํ๋ก๊ทธ๋จ์ ํ์ฅํ ์ ์๋ค.
์ด๋ ค์ด ๋ง๋ก ์ค๋ช ํ์ง๋ง, ๊ฒฐ๊ตญ ๋์ปค๋ ๊ฐ๋ฐ์ ํธํ๊ธฐ ํ๊ธฐ ์ํ ๋๊ตฌ์ด๋ค. ๊ฐ๋ฐ์์๊ฒ ๊ฐ๋ฐ ํ๊ฒฝ ์ธํ ์ด๋ ๋ฒ๊ฑฐ๋ฝ๊ณ ์๊ฐ์ด ๋ง์ด ์์๋๋ ์์ ์ด๋ค. ํนํ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ํ์ ์ ํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ๋ค๋ฅธ ์ด์์ฒด์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ผ๋ก ์ธํด ์ผ๊ด๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ์งํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค. ํ์ง๋ง ๋์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๊ฒฉ๋ฆฌ๋ ์ปจํ ์ด๋๋ก ์คํํ์ฌ ๊ฐ๋ฐํ ์ ์๋ค. ์ด๋ก์จ ๊ฐ์์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ ๋ฒ๊ฑฐ๋ก์์ ๋ ์ ์๊ณ , ๋์ฑ ํจ์จ์ ์ธ ๊ฐ๋ฐ๊ณผ ํ์ ์ด ๊ฐ๋ฅํด์ง๋ ๊ฒ์ด๋ค.
๋์ปค ์ฌ์ฉ ์์
- ์น ๊ฐ๋ฐ: ๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ฉด, ๊ฐ๋ฐ ํ๊ฒฝ์ ๋์ผํ๊ฒ ์ค์ ํ๊ณ ๋ค๋ฅธ ํ์๊ณผ์ ํ์ ์ ์ฉ์ดํ๊ฒ ํ ์ ์๋ค. ๊ฐ๋ฐ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์ฑ ์์คํ ๋ฑ์ ๊ฐ๊ฐ์ ๋์ปค ์ปจํ ์ด๋๋ก ์คํํ๋ฉด ํ๊ฒฝ ์ผ์น์ฑ์ ์ ์งํ๋ฉด์ ์์ ํ ์ ์๋ค.
- ์๋ฒ ๊ฐ๋ฐ: ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์๋ ๊ฐ ์๋น์ค๋ฅผ ๋ ๋ฆฝ์ ์ธ ๋์ปค ์ปจํ ์ด๋๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ์ ์๋ค. ๊ฐ ์๋น์ค๋ ๋ ๋ฆฝ๋ ์ฝ๋๋ฒ ์ด์ค์ ์ข ์์ฑ์ ๊ฐ์ง๋ฉฐ, ๊ฐ๋ณ์ ์ผ๋ก ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅํ๋ค.
- AI ๋ชจ๋ธ ๊ฐ๋ฐ: AI ๋ชจ๋ธ์ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ๋๋ ๋์ปค๋ฅผ ํ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, AI ๋ชจ๋ธ์ ์คํํ๋ ๋์ปค ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ๋ฐฐํฌํ ์ ์๋ค. ์ด ์ปจํ ์ด๋๋ ๋ชจ๋ธ ์ถ๋ก ์ ์ํํ๊ณ , ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ข ์์ฑ์ ํฌํจํ ์ ์๋ค.
๋์ปค ์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋์ปค ์ด๋ฏธ์ง ๋น๋: Dockerfile์ ์์ฑํ์ฌ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑ. ์ด๋ฏธ์ง๋ ์ปจํ ์ด๋ ์คํ ํ๊ฒฝ์ ์ ์ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์น ์๋ฒ, ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ํฌํจํ๋ค.
- ๋์ปค ์ปจํ ์ด๋ ์คํ: ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ปค ์ปจํ ์ด๋๋ฅผ ์คํ. ์ปจํ ์ด๋๋ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํ๋๋ฏ๋ก, ๊ฐ๊ฐ์ ์ปจํ ์ด๋๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋ค.
- ์ปจํ ์ด๋ ๋คํธ์ํน: ๋์ปค ์ปจํ ์ด๋ ๊ฐ์ ํต์ ์ ์ํด ๋คํธ์ํฌ ์ค์ ์ ๊ตฌ์ฑ. ํ์ํ ๊ฒฝ์ฐ ํธ์คํธ์ ์ปจํ ์ด๋ ๊ฐ์ ํฌํธ ๋งคํ์ ์ค์ ํ ์ ์๋ค.
- ์ปจํ ์ด๋ ๊ด๋ฆฌ: ๋์ปค ์ปดํฌ์ฆ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋ณต์กํ ์ํคํ ์ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ๊ธฐ ์ฉ์ดํด์ง๋ค.
- ์ด๋ฏธ์ง ๊ณต์ ๋ฐ ๋ฐฐํฌ: ๋น๋ํ ์ด๋ฏธ์ง๋ฅผ ๋์ปค ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋ํ๊ฑฐ๋, ๋ค๋ฅธ ๊ฐ๋ฐ์์ ๊ณต์ ํ ์ ์๋ค. ๋ฐฐํฌ ์์๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ปจํ ์ด๋๋ฅผ ์คํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ค.