๋์ปค๋
๋ฆฌ๋ ์ค ์ปจํ ์ด๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Go ์ธ์ด๋ก ์์ฑ๋ ์คํ์์ค ๊ฐ์ํ ํ๋ก์ ํธ
๊ธฐ์กด์ ๊ฐ์ํ ๊ธฐ์
ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ๊ฐ์ ์ด์์ฒด์ ๋ฅผ ํ๋์ ํธ์คํธ์์ ์์ฑํด ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก,
ํ์ดํผ๋ฐ์ด์ ์ ์ํด ๊ด๋ฆฌ๋๋ ์ด์์ฒด์ ๋ ๊ฒ์คํธ ์ด์์ฒด์ (Guest OS)๋ผ๊ณ ํ๊ณ , ๋ํ์ ์ธ ๊ฐ์ํ ํด๋ก VirtualBox, VMware ๋ฑ์ด ์๋ค.
๊ฐ์ ๋จธ์ ์ ๊ฒ์คํธ ์ด์์ฒด์ ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ปค๋์ ๋ชจ๋ ํฌํจํ๋ฏ๋ก ๋ฐฐํฌํ ๋์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ , ์์ฒญ๋ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒ์ ์ด์๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ฑ๋ฅ ์์ค์ ๋ฌธ์ ๋ ๋ฐ์ํ ์ ์๋ค.
ํ์ง๋ง, ๋์ปค ์ปจํ ์ด๋๋ ๋ฆฌ๋ ์ค์ chroot, namespace, cgroup์ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค ๋จ์์ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ๋ง๋ ๋ค. ๋ฐ๋ผ์ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ ๋ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์กด์ฌํ๋ฏ๋ก ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ๊ฐ์ ๋จธ์ ์ ๋นํด ์ค์ด๋ ๋ค๊ณ ํ ์ ์๋ค. ๊ฐ์ํ๋ ๊ณต๊ฐ์ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ์์ค๋ ๊ฑฐ์ ์๋ค.
์น ๊ฐ๋ฐ์์ Docker๊ฐ ํ์ํด์ง ์ด์
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ ์ง ์๊ฐํด๋ณด๋ ๊ฒ์ด ์ฐ์ ์ด๋ค. ์ฑ๋ฅ์ ๋์ด๋ ๊ฐ์ํ ์ปจํ ์ด๋ ๊ธฐ์ ์ธ ๋์ปค๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ?
์ํํธ์จ์ด ์๋น์ค๊ฐ ์ฅ์ ๋ฅผ ์ผ์ผํค๋ฉด ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค. ๊ฐ์ํ๋ฅผ ํตํด ์์์ ๋ถ๋ฆฌํ๋๋ฐ, ๋ค์ํ ์ด์ ์ฒด์ ์์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๊ณ ์๋ฒ ๋น์ฉ์ ์ ๊ฐํ๋ค. ๊ฐ์ํ(Virtualization)์ ์ฌ์ฉํด์ ํ๋์ ์ปดํจํฐ์์ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ค.
Virtual machine์ ๋นํด ํจ์จ ์ฑ๋ฅ์ด ๋ ์ข์์ง ๊ฒ์ด ์ปจํ ์ด๋์ด๋ค.
์ปจํ ์ด๋๋ ๊ฐ์ ๋จธ์ ๊ณผ ๋ฌ๋ฆฌ ์ด์์ฒด์ ์์ค์์ ๊ฒฉ๋ฆฌ๋๊ณ , ํ๋์ ํธ์คํธ ์์คํ ์์ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ์คํํ์ฌ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
๋์ปค ์คํ ๋ฐฉ์
1. ๊ฐ๋ฐ์๊ฐ Dockerfile์ ์ค๋นํ์ฌ docker build ๋ช ๋ น์ด๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ค.
2. Dockerfile ๋ด์ ์ง์์ด๋ค์ด ์์๋๋ก ์คํ๋๋ฉฐ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋๋ค.
3. ๋์ปค ์ด๋ฏธ์ง ๊ด๋ฆฌ (์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ ์ด์์ ์ค์)
docker image์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํ Dockerfile ์ต์ ํ ์ ๋ต์๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์๋ค. -> ์ค์ ๋ฐฐํฌ ์ ์ฒดํฌํ ํฌ์ธํธ์ด๋ค.
๋์ปค ์ด๋ฏธ์ง ๊ด๋ฆฌ๋ ์ํํธ์จ์ด์ ์ฑ๋ฅ๊ณผ ๋น์ฉ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋ฉํฐ ์คํ ์ด์ง ๋น๋ ๋์
- ํ๊ฒฝ ๋ณ์ ์ค์ ํ๊ธฐ
- ํ์ ์๋ ํ์ผ ์ ๊ฑฐ
- ๋ ์ด์ด ์ ์ค์ด๊ธฐ
- ๋์ปค ํ๋ธ(docker hub) ์ฌ์ฉํ์ฌ ์ค๋๋ ์ด๋ฏธ์ง ์ ๋ฆฌ (์ฉ๋ ํ๋ณด)
- AWS์ Elastic Container Service ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ๊ด๋ฆฌ
์ฐธ๊ณ
https://www.docker.com/blog/containers-and-vms-together/
Containers and VMs Together | Docker
Learn from Docker experts to simplify and advance your app development and management with Docker. Stay up to date on Docker events and new version
www.docker.com
https://www.docker.com/resources/what-container/
What is a Container? | Docker
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of s
www.docker.com