์ด์์ฒด์ ์์ค ๊ฐ์ํ(Operating-system-level virtualization, ๋๋ Containerization)๋ฅผ ์ง์ํ๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ.1
์ด์์ฒด์ ์์ค ๊ฐ์ํ๋, ์ด์์ฒด์ ์ ์ปค๋์ด ๋ ๊ฐ ์ด์์ ๊ฒฉ๋ฆฌ๋ ์ฌ์ฉ์ ๊ณต๊ฐ ์ธ์คํด์ค๋ฅผ ๊ฐ์ถ ์ ์๋๋กํ๋ ์๋ฒ ๊ฐ์ํ ๋ฐฉ์์ ์๋ฏธ.2
์ด๋ ์ฌ์ฉ์ ๊ณต๊ฐ์ ์์ฉ ์ํํธ์จ์ด์ ์ผ๋ถ ๋๋ผ์ด๋ฒ๊ฐ ๋์ํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ปํจ.3
์ข ํฉํ์๋ฉด, ๋์ปค๋ ์ด์์ฒด์ ์ ์ปค๋ ์์ ๋ ๊ฐ ์ด์์ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ์์ฉ ์ํํธ์จ์ด ๋ฑ์ด ๋์ํ ์ ์๊ฒ ์ง์ํ๋ ํ๋ก๊ทธ๋จ.
Docker v.s. Virtual Machine
๊ฐ์ ๋จธ์ ์ ๊ทธ๋ฆผ์ผ๋ก ํํ.
๊ทธ๋ฆผ์์ ํ์ธํ ์ ์๋ฏ์ด ๊ฐ์ ๋จธ์ ์ ๋์ปค์ ๋ฌ๋ฆฌ Host ์ด์์ฒด์ ์์ Guest ์ด์์ฒด์ ๋ฅผ ํฌํจ.
์ด์ ๋ฐ๋ผ ๊ฐ์ ๋จธ์ ์ ๋์ปค์ ๋นํด ๋ฌด๊ฒ๊ณ ๋๋ฆผ.
(๋งํฌ์์ ํธ์คํธ ๋๋น ๋์ปค์ ์ฑ๋ฅ์ ํ์ธ ๊ฐ๋ฅ.)
๋์ปค์ ๋ํ ๋ณด๋ค ์์ธํ ์ค๋ช ์ ๋งํฌ๋ฅผ ์ถ์ฒ.
docker store์ ์ ์ํ์ฌ ์ด์์ฒด์ ์ ๋ง๋ ๋์ปค๋ฅผ ์ค์น.
์ด์ ์๋ ๋์ปค ์ค์น ์์ฉ ํ๋ก๊ทธ๋จ ๋ค์ด๋ก๋ ์ ์ฌ์ดํธ ๋ก๊ทธ์ธ์ด ํ์ํ์ง ์์๋๋ฐ, 2018๋ 7์ 3์ผ ์ฆ์๋ถํฐ ์ฌ์ดํธ ๋ก๊ทธ์ธ์ด ํ์ํ ๊ฒ์ผ๋ก ๋ณด์.
๋ง์ผ ๋์ปค ์ฌ์ดํธ ๊ณ์ ์ด ์์ ๊ฒฝ์ฐ ํ์ ๊ฐ์ ํ ์๋์ ๊ณผ์ ์ ์งํ.
(์ฐธ๊ณ ๋ก ๋์ปค๋ ๋ฌด๋ฃ์ธ Community Edition ์ธ์ ์ ๋ฃ์ธ Enterprise Edition ์ญ์ ์ง์.)
Docker Community Edition for Windows ๋ค์ด๋ก๋ ์์.
๋์ปค ์ค์น ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด์ cmd.exe ๋๋ Powershell์์ docker๋ฅผ ์คํ.
(Mac์ ๊ฒฝ์ฐ ํฐ๋ฏธ๋์์ ์์ ๋ช
๋ น ์คํ.)
์์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค๋ฉด ์ค์น ์๋ฃ.
๋์ปค ์ด๋ฏธ์ง vs ๋์ปค ์ปจํ ์ด๋
- ๋์ปค ์ด๋ฏธ์ง
- ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ ๋ ์ด์ด์ ์งํฉ
- ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํ๊ณ ์๋, ์คํ ๊ฐ๋ฅํ ํจํค์ง5
- ๋์ปค ์ปจํ
์ด๋
- ์ด๋ฏธ์ง์ ์ธ์คํด์ค6
- Ubuntu
์ปจํ ์ด๋ ์คํ ๋ช ๋ น์ด๋ ์๋๋ฅผ ์ฐธ๊ณ .
docker run -i -t -v /drive/local-directory/:/container-directory -p host-port-num:docker-port-num --link container-name:alias --name ubuntu-container-name ubuntu:tag
docker run์ ์๋ก์ด ์ปจํ
์ด๋๋ฅผ ์คํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ช
๋ น์ด.
์ปจํ ์ด๋๋ฅผ ์์ํ๊ธฐ ์ํด์๋ ์ด๋ฏธ์ง๋ฅผ ์คํ์ด ํ์.6
์ด๋ฏธ์ง๋ฅผ ๋ฐ๊ธฐ ์ํด์ docker pull image:tag ๋ช
๋ น์ ์คํํด์ผ ํ์ง๋ง, docker run ๋ช
๋ น์ ์คํํ์ ๋ ์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก docker pull๋ช
๋ น์ ์ค์.[7]
(tag๋ ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธ๋ฆฌ. ์ต์ ๋ฒ์ ์ ๋ฐ๊ณ ์ถ๋ค๋ฉด, image:latest๋ช
๋ น์ด๋ฅผ ์ฌ์ฉ.)
๋ช ๋ น์ ์ฌ์ฉํ ์ต์ ์ ์๋์ ํ๋ฅผ ์ฐธ๊ณ .
| ์ต์ | ์ค๋ช |
|---|---|
--name |
์ปจํ ์ด๋์ ์ด๋ฆ์ ๋ถ์ฌ |
-e |
ํ๊ฒฝ ๋ณ์ ์ค์ (๊ฐ ์ปจํ ์ด๋ ๋ณ๋ก ์ค์ ํ ์ ์๋ ํ๊ฒฝ ๋ณ์๋ ๋์ปค ํ๋ธ๋ฅผ ํ์ธ) |
-d |
๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ปจํ ์ด๋ ์คํ |
-i |
-t ์ต์
๊ณผ ํจ๊ป ์ฌ์ฉํ๊ณ ์ปจํ
์ด๋์ ์ดํ์น (attach)๋์ง ์์ ๋์๋ STDIN (Standard Input, ํ์ค ์
๋ ฅ) ์ ์ง |
-t |
-i ์ต์
๊ณผ ํจ๊ป ์ฌ์ฉํ๊ณ Bash๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด pseudo-TTY(ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ8) ์ง์ |
-v |
ํธ์คํธ์ ๋ณผ๋ฅจ์ ์ปจํ ์ด๋์ ๋ง์ดํธ (mount) |
-p |
๋์ปค์ ํฌํธ๋ฅผ ํธ์คํธ์ ํฌํธ์ ํผ๋ธ๋ฆฌ์ (publish) |
--link |
์คํํ๊ณ ์ ํ๋ ์ปจํ ์ด๋์ ๋ค๋ฅธ ์ปจํ ์ด๋๋ฅผ ์ฐ๊ฒฐ |
๋์ปค ์ปจํ
์ด๋ ์์ฑ์ ํ์ธํ๊ณ ์ถ์ ๊ฒฝ์ฐ docker ps -a๋ช
๋ น์ด๋ฅผ cmd.exe ๋๋ Powershell์์ ์คํ.
-a์ต์
์ ์๋ตํ๋ ๊ฒฝ์ฐ ์คํ ์ค์ธ ์ปจํ
์ด๋๋ง์ ํ์ํด์ค.
์์ ๊ทธ๋ฆผ์์ ํ์ธํ ์ ์๋ฏ์ด, ์๋์ฐ ์์์๋ ๋ฆฌ๋ ์ค์์์ ๋ฌ๋ฆฌ ๋ฆฌ๋ ์ค ๊ฐ์ ๋จธ์ (Hyper-V๋ผ๋ ์๋์ฐ ๋ค์ดํฐ๋ธ (native) ํ์ดํผ๋ฐ์ด์ ์ด์ฉ) ์์ ๋์ปค ์์ง์ด ๋์.
๊ทธ ์ด์ ๋ ๋์ปค๊ฐ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ (Linux Container, LXC)๋ผ๋ ์ด์์ฒด์ ์์ค์ ๊ฐ์ํ ๊ธฐ์ ์ ์ด์ฉํด, ๋ฆฌ๋ ์ค ์ธ์ ์ด์์ฒด์ ์์๋ ๋ฆฌ๋ ์ค ๊ฐ์ ๋จธ์ ์ ํ์๋ก ํ๊ธฐ ๋๋ฌธ.
์ฐ๋ถํฌ ์ปจํ
์ด๋์ ์์ฑ์ด ์๋ฃ๋์๋ค๋ฉด, docker start container-name๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ์ปจํ
์ด๋๋ฅผ ์คํ.
(--link ์ต์
์ผ๋ก ์ฐ๊ฒฐ๋ ์ปจํ
์ด๋๋ถํฐ ์คํํด์ผ ํจ. docker-compose๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ๊ด๋ฆฌ ๊ฐ๋ฅ.)
์ฐ๋ถํฌ ์ปจํ
์ด๋๋ -it ์ต์
์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ docker attach container-name ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด, ์ฐ๋ถํฌ ์ปจํ
์ด๋์ Bash ์
ธ์ ์ด์ฉ ๊ฐ๋ฅ.
Docker Kitematic์ ์ด์ฉํ๋ฉด GUI ์์ผ๋ก ๋์ปค๋ฅผ ์ ์ด ๊ฐ๋ฅ.
CLI ํ๊ฒฝ์ด ์ต์ํ์ง ์๋ค๋ฉด Docker Kitematic์ ์ด์ฉ์ ์ถ์ฒ.
๋์ปค ์์ด์ฝ์ ์ฐํด๋ฆญ ํด Kitematic์ ํด๋ฆญํ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ฉ์์ง๊ฐ ๋ํ๋จ. ์ข์ธก์ Download๋ฅผ ํด๋ฆญํด ์ค์น.
๋ฒํผ์ ํด๋ฆญํ๋ฉด ZIP ํ์ผ์ด ๋ค์ด๋ก๋๋จ. ์์ง ๋ฑ์ ํ๋ก๊ทธ๋จ์ผ๋ก ZIP ํ์ผ์ ์์ถ์ ํด์ .
์์ง ํด์ ํ ์๋์ ๊ทธ๋ฆผ์ ํ์ผ์ ํด๋ฆญํ๋ฉด, Docker Kitematic์ด ์คํ.
Docker Kitematic์์ CLI์ ๋์ผํ๊ฒ docker pull๋ถํฐ docker run์ --link ๋ฑ์ ์ต์
๋ ์ด์ฉ ๊ฐ๋ฅ.






