ํฐ์คํ ๋ฆฌ ๋ทฐ
mac์์ docker๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ค๊ฐ linuxkit, moby project, xhyve, hyperkit์ ๋ํด์๋ ์ฐพ์๋ณธ ๊ธ
pansy0319 2020. 12. 26. 04:38์ ๋ชฉ์ด ์ข ๊ตฌ๊ตฌ์ ์ ํ๋ค
docker๋ฅผ mac os(os x)์์ ์คํ์ํค๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๊ฐ ์๋ค
1. docker tool box๋ฅผ ์ด์ฉ
- ๋ฆฌ๋ ์ค ๊ฐ์ ๋จธ์ ์ ์์ฑํ ๋ค ๋์ปค๋ฅผ ์ค์น
- virtual box > ๋ฆฌ๋ ์ค ๊ฐ์ ๋จธ์ > ๋์ปค ์ปจํ ์ด๋
2. docker for mac์ ์ด์ฉ
- ์์ฒด ๊ฐ์ํ ๊ธฐ์ ๋ก ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๋ง๋ค์ด ์ปจํ ์ด๋ ์์ฑ
- ๊ฐ์ํ๊ฒฝ์ ์์ฑํ๊ธฐ ์ํด linuxkit์ด๋ผ๋ ํด์ ์ด์ฉ
linuxkit์ ์ฒ์ ๋ค์ด๋ณด์๋๋ฐ ๋ญ์ง ๊ถ๊ธํด์ ์ฐพ์๋ณด์๋ค
- linuxkit: a secure linux subsystem
- ๋ง์ docker๋ฅผ ํ์ํ ํ๊ฒฝ๋ค์ด linux subsystem์ ์ ๊ณตํ์ง ์๊ณ ์์
- docker๋ ๋ชจ๋์์ด๊ณ , ์์ ํ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ด์๊ฐ๋ฅํ(portalbe) linux subsystem์ ์ํ์
- docker๋ ๋ค์ํ ํ๋ซํผ์ linux subsystem์ ๊ตฌ์ถํ๊ธฐ ์ํด ๊ฐ๋ฐํ kit์ ์คํ์์ค๋ก ๊บผ๋ธ๊ฒ linuxkit
- linuxkit์ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์ต์ํ์ linux kernel๋ก ์์ํด์ ํ์ํ ๊ฒ๋ง์ ์ถ๊ฐํด์ ์ฌ์ฉ,,
- ์ง์ ํ๋ซํผ : HyperKit(macOS), Hyper-V(Windows),,,๋ฑ๋ฑ
=> docker๋ linux ๊ธฐ๋ฐ์์ ์คํ๋์ง๋ง ๊ทธ๊ฒ ์๋๋ os๋ค์์ docker ์คํ์ ์ํด ์ฌ์ฉํ๋ ์๊ณ ๊ฐ๋ฒผ์ด linux kernel,,,์ ๋๋ก ์ดํดํ๋ค
(์ฐธ๊ณ ๋ก github์๋ A toolkit for building secure, portable and lean operating systems for containers๋ผ๊ณ ๋์ด์๋น)
์ฐพ๋ค๋ณด๋ moby project์ ๋ํด์๋ ์๊ฒ๋์๋ค
- moby project : specialized container system๋ค์ ์กฐ๋ฆฝํ๋ ํ๋ ์์ํฌ
- ๊ตฌ์ฑ
- ์ปจํ ์ด๋ํ ๋ ๋ฐฑ์๋ ๊ตฌ์ฑ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- component๋ค์ ๋ ๋ฆฝํ container platfor์ผ๋ก ์กฐ๋ฆฝํ๊ณ , ์ด ์กฐํฉ๋ artifact๋ค์ build, test, deployํ๊ธฐ ์ํ framework
- ์์ฒด container ๊ธฐ๋ฐ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์ ํ๋ ์ฌ๋๋ค์ ์ํ ๊ฒ
- moby๋ฅผ ์ฌ์ฉํด์ ๋ฐฐํฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ linuxkit ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ,,
ํ๋ฉด์ xhyve์ ๋ํด์๋ ์กฐ๊ธ ์ฐพ์๋ณด์๋ค
- xhyve : os x์ Hyphervixor.framework์์ ์คํ๋๋ ๊ฐ์ ๋จธ์ ์ด์์ฒด์
- bhyve์ os x๋ก์ port(์ฝ๋๋ ์ ์ฌํ๋ฐ ๊ตฌ์กฐ๊ฐ ๋ค๋ฆ, github ์ฐธ๊ณ )
- bhyve๋ type2 hypervisor
- bhyve๋ ๋จ์์ฑ์ ์ค์ ์ ๋ FreeBSD hypervisor์ด๋ค(linux์ KVM + QEMU์ ์ ์ฌ)
(FreeBSD๋ BSD๊ณ์ด ์คํ์์ค ์ด์์ฒด์ ์ด๊ณ , BSD๋ ์ ๋์ค ์ด์์ฒด์ ์ชฝ์ด๋ค(์ฐธ๊ณ ))
- docker for mac์ด ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ค,,
- hyperkit
- application์ hypervisor ๊ธฐ๋ฅ์ ํฌํจํ๊ธฐ ์ํ toolkit
- xhyve, bhyve ๊ธฐ๋ฐ์ ์์ ํ hypervisor๊ฐ ํฌํจ๋จ
- xhyve์์ ํ์๋์ด์ ํ์ฅ
๋์ค์ ์ด ๊ธ์ ๋ฐ๋ผํด๋ณด๋ ๊ฒ๋ ์ข์๊ฒ ๊ฐ๋ค linuxkit ์ง์ ์คํํด๋ณด๊ธฐ!
- ๋๋ฆ๋๋ก ์ ๋ฆฌํด๋ณธ ๊ฒฐ๋ก
docker๊ฐ virtual machine๊ณผ์ ๋ค๋ฅธ ์ ์ด host os๋ฅผ ๊ณต์ ํ container๋ฅผ ์คํ์ํจ๋ค๋ ๊ฒ์ด๋ค
(๊ฐ์ํ๋ ๊ณต๊ฐ ์์ฑ์ linux ์์ฒด ๊ธฐ๋ฅ์ธ chroot, namespace, cgroup ์ฌ์ฉ, hypervisor๊ฐ ์๋ docker engine์ด ๋์)
์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ >>>host os<<<๊ฐ linux์ฌ์ผ ํ๋ค,,,๋ ๊ฒ์ด ์๋ค
docker๋ฅผ linux์์ ์คํํ ๋๋ ๋ณ ์ด์๊ฐ ์๋๋ฐ linux ๊ณ์ด์ด ์๋! os์์ ์คํํ ๋ ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ์ด๋ค
๊ทธ๋์ linux๊ฐ ์๋ os์์ docker ์คํ์ ์ํด์๋ linux ๊ฐ์ ๋จธ์ ์ ํ๋ ๋์ฐ๊ณ ๊ฑฐ๊ธฐ์ ์ปจํ ์ด๋๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ1์ด ์๋ค
๋ฐฉ๋ฒ1์ container ์ ์์ ์ํด host os์ linux ๊ฐ์ ๋จธ์ ํฌํธ ํฌ์๋ฉ, ๊ฐ์ ๋จธ์ ๊ณผ ์ปจํ ์ด๋ ์ฌ์ด์ ํฌํธ ํฌ์๋ฉ์ด ํ์ํ์ฌ ์ข ๋ณต์กํ๋ค
docker๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ1์ธ์ ์์ฒด ๊ฐ์ํ ๊ธฐ์ ๋ก ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๋ง๋๋ ๋ฐฉ๋ฒ2๊ฐ ์๋ค
os x๋ HyperKit๋ฅผ ์ด์ฉํด์ linux ํ๊ฒฝ์ ๋ง๋๋๋ฐ bhyver๊ฐ type2๋ผ๋ ๊ฑธ ๋ณด๋ HyperKit๋ type2์ธ๊ฑฐ ๊ฐ๋ค(bhyve->xhyve->hyperkit)
windows10์ hyper-v๋ฅผ ์ด์ฉํ๋๋ฐ ์ด๊ฑด type1์ด๋ค
๊ณ ๋ก ๋ฐฉ๋ฒ 2๋ก ๋์ปค ์คํ์ windows10์ด os x๋ณด๋ค ํ๋์จ์ด~๋์ปค ์ปจํ ์ด๋ ์ฌ์ด์ layer๊ฐ 1๊ฐ ์ ์ ๋ฏํ๋ค
์ด์ฐ๋๋ ๋ ๋ค ์๋ฌด๊ฒ๋ ์์ด๋ docker๋ฅผ ๋ชป ๋๋ฆฌ๊ณ linuxํ๊ฒฝ์ด ์กฐ์ฑ๋์ผ ๋์ ์ญ์ ์ ์ผ ์ข์๊ฑด linux์์ ๋ฐ๋ก docker ๋๋ฆฌ๋ ๊ฒ์ด๋น
๊ทผ๋ฐ local์์ ๊ฐ๋ณ๊ฒ ํ ์คํธ๋ ๊ณต๋ถ๋ง ํ ๋ชฉ์ ์ด๋ฉด ๋ณ ์๊ด ์๋๋ฏ!
์ด๋ฒ์ ์๋ก๋์จ m1 ๋งฅ๋ถ์ด docker๊ฐ ์คํ ์๋๋ค๋ ์ด์๊ฐ ์๋ค๋๋ฐ(๋งํฌ)
๊ธฐ์กด์ ๋งฅ๋ถ์ ๋ค์ด์๋ ์ธํ ์นฉ์ ๊ฐ์ํ ๊ธฐ์ ์ ์ง์ํ๋๋ฐ m1์ arm์ด๊ณ ,,,
์ธํ ์ด๋ m1์ด๋ hypervisor๋ฅผ ์ง์ํ์ง๋ง ๋๋ฆฌ๋ ๋ฐฉ์ arm์์ ์ง์ํ๋ ๊ฐ์ํ๊ฐ ์ข ๋ฌ๋ผ์ ์๋๋ค๋๊ฒ ๊ฐ๋ค(์ฐธ๊ณ )
๊ถ๊ธํด์ ธ์ ์๋ฒฝ์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ดค๋๋ฐ ๋๋ ์ด๋ ต๋คใ .ใ
- linuxkit github : github.com/linuxkit/linuxkit
- xhyve github : github.com/machyve/xhyve
- hyperkit github : github.com/moby/hyperkit
- ์ถ์ฒ 1 : www.cio.com/article/3190937/what-is-linuxkit-and-why-does-it-matter.html
- ์ถ์ฒ 2 : www.mirantis.com/blog/ok-i-give-up-is-docker-now-moby-and-what-is-linuxkit/
- ์ถ์ฒ 3 : www.docker.com/blog/introducing-the-moby-project/
- ์ถ์ฒ 4 : [์ฑ ] ์์ํ์ธ์!๋์ปค/์ฟ ๋ฒ๋คํฐ์ค
-์ถ์ฒ 5 : medium.com/@hintcnuie/the-difference-between-xhyve-and-hyperkit-67a9f378ab97
- ์ฝ์ด๋ณด๋ฉด ์ข์ ๊ธ : renuevo.github.io/docker/docker-structure-windows10/
* ๋ ์์๋ณผ ๊ฒ
- KVM
- QEMU
- KEXT
'๐โ๏ธโ๏ธโ๏ธ๐ > docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Dockerfile ๊ฐ๋จ ์ ๋ฆฌ (0) | 2021.07.22 |
---|---|
๋์ปค ๋ช ๋ น์ด ๋ชจ์ (0) | 2021.07.22 |
ํ์ดํผ๋ฐ์ด์ (hypervisor)๋? (0) | 2020.12.26 |
- Total
- Today
- Yesterday
- ๋์ปค
- Spring
- ํด๋ฆฐ์ฝ๋
- docker pull limit
- cacheable
- kotlin
- ์ฟ ๋ฒ๋คํฐ์ค
- ๋๋ฉ์ธ์ฃผ๋์ค๊ณ
- clean code
- ์๋ฐ
- Kubernetes
- QuickTimePlayer
- IntelliJ
- back merge
- ์คํ๋ง๋ถํธ
- docker
- ddd
- ์ฝํ๋ฆฐ
- ์คํ๋ง
- JavaScript
- gradle
- docker for mac
- linuxkit
- ImagePullBackOff
- ์๋ฐ์คํฌ๋ฆฝํธ
- kotlin In Action
- springboot
- java
- gasmask
- k8s
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |