I. ๊ฐ์ ๋ฐ ๊ณตํต ๊ฐ๋
1. containerd์ ์ญํ ์ดํด (Container Runtime)
containerd๋ ์ปจํ ์ด๋ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ย ํต์ฌ ์์ง์ ๋๋ค.- ์ฌ์ฉ์๊ฐย
docker run์ ์คํํ ๋, ์ค์ ๋ก๋ Docker API๊ฐ ์์ฒญ์ ๋ฐ์ยcontainerd์๊ฒ ์ ๋ฌํ๊ณ ,ยcontainerd๊ฐ ์ต์ข ์ ์ผ๋กยruncย ๊ฐ์ ๋ฎ์ ๋ ๋ฒจ์ ๋ฐํ์์๊ฒ ์์ ์ ์์ํ์ฌ ์ปจํ ์ด๋๊ฐ ์คํ๋ฉ๋๋ค. - ์ฅ์ :ย ์ค๋ฒํค๋๊ฐ ๋ฎ๊ณ , ์์ ์ฑ์ด ๋์ ์ด์ ํ๊ฒฝ(Production)์์ ์ฌ์ฉ๋ฉ๋๋ค.
2. ํต์ฌ ๋๊ตฌ ์ดํด
| ๋๊ตฌ | ์ญํ | ๋ชฉ์ |
|---|---|---|
containerd |
ํต์ฌ ์์ง | ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ (์ ์ฅ์, ๋คํธ์ํฌ, ํ๋ก์ธ์ค). |
skopeo |
์ด๋ฏธ์ง ๊ด๋ฆฌ ์ ํธ๋ฆฌํฐ | ์๊ฒฉ ๋ ์ง์คํธ๋ฆฌ(Docker Hub ๋ฑ)์์ ์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๊ฑฐ๋, ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ฌ/๋ณต์ฌํ ๋ ์ฌ์ฉ (๋งค์ฐ ์ ์ฉ). |
ctr |
CLI (Control Tool) | containerd์ ๋ด๋ถ API๋ฅผ ์ง์ ๋ค๋ฃจ๋ ๋ช
๋ น์ด ๋ผ์ธ ๋๊ตฌ. |
3. โ ๏ธ ์ค์ ์ ์ ์กฐ๊ฑด (ํ๋ )
- WSL2 ์ฌ์ฉ (Windows ์ฌ์ฉ์):ย Windows ํ๊ฒฝ์์ Linux ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด WSL2๋ฅผ ์ค์นํ๊ณ ํ์ฑํํด์ผ ํฉ๋๋ค.
- Root ๊ถํ:ย ๋๋ถ๋ถ์ ์ปจํ ์ด๋ ๊ด๋ จ ์์ ์ ๋์ ์์คํ ๊ถํ์ด ํ์ํ ์ ์์ต๋๋ค.
II. Red Hat Linux ํ๊ฒฝ (RHEL/Fedora ๋ฑ)
๐ 1. ์ค์น ๋ฐ ์ค์
# 1. containerd๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ๊ณ ์ค์น
sudo dnf install containerd.io
# 2. ์๋น์ค ํ์ฑํ ๋ฐ ์์
sudo systemctl enable containerd
sudo systemctl start containerd
# 3. (ํ์์) ๋คํธ์ํฌ ๊ด๋ จ ์ค์ ํ์ธ (CRI-O ๋ฑ ์ฌ์ฉ ์)
โ๏ธ 2. Red Hat ํ๊ฒฝ์์์ ์ด์ ์์ (ํ์ค)
Red Hat ๊ธฐ๋ฐ ์์คํ
์ย containerdย ์ฌ์ฉ์ด ๊ฐ์ฅ ํ์ค์ ์
๋๋ค.
# (์๋ต) ์ด๋ฏธ์ง ํ๋ง ๋ฐ ์ปจํ
์ด๋ ์คํ ์์
# ์: nginx ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ๊ณ ์คํํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ
sudo ctr image pull docker.io/library/nginx:latest # containerd CLI ์ฌ์ฉ
sudo ctr run docker.io/library/nginx:latest
III. Windows ํ๊ฒฝ (WSL2 ์ฌ์ฉ)
Windows์์๋ WSL2๋ฅผ ํตํด ๋ฆฌ๋ ์ค ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ณ , ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ ์ Red Hat ๊ฐ์ด๋์ ๋์ผํ๊ฒ ์์ ํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๐ป 1. WSL2 ์ค์
# 1. WSL2 ์ค์น (Administrator ๊ถํ์ PowerShell์์ ์คํ)
wsl --install
# 2. Linux ๋ฐฐํฌํ ์ค์น (Ubuntu ๋ฑ)
# 3. ๋ฐฐํฌํ ๋ด๋ถ๋ก ์ง์
ํ์ฌ Red Hat ๊ฐ์ด๋์ ๋์ผํ๊ฒ ์์
์์
โ๏ธ 2. Windows (WSL2) ์ด์ ์์
WSL2 ๋ด๋ถ์์ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
# Ubuntu ๋ด๋ถ ํฐ๋ฏธ๋์์ ์คํ ๊ฐ์
sudo dnf install containerd.io
# ... (๋๋จธ์ง ๋ช
๋ น์ด๋ Red Hat ์น์
๊ณผ ๋์ผ)
IV. ๊ณตํต ์ด์ ์ ์ฐจ (์ค์ ์ปจํ ์ด๋ ์ฌ์ฉ ์์)

ํ๊ฒฝ ์ค์ ์ด ์๋ฃ๋์๋ค๊ณ ๊ฐ์ ํ๊ณ , ๋ชจ๋ ์์คํ ์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์์ ํ๋ฆ์ ๋๋ค.
๐งฑ 1. ์ด๋ฏธ์ง ๋ค์ด๋ก๋ (Pull)
# Docker Hub์์ nginx ์ต์ ๋ฒ์ ์ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ต๋๋ค.
# (์ฌ์ฉํ๋ CLI์ ๋ฐ๋ผ 'docker pull' ๋๋ 'ctr image pull' ์ฌ์ฉ)
sudo docker pull nginx:latest
๐ 2. ์ปจํ ์ด๋ ์คํ (Run)
# -d : ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
# -p 8080:80 : ํธ์คํธ ํฌํธ 8080์ ์ปจํ
์ด๋ ๋ด๋ถ 80 ํฌํธ์ ์ฐ๊ฒฐ
sudo docker run -d --name my_webserver -p 8080:80 nginx:latest
๐ 3. ๋์ ํ์ธ ๋ฐ ๋ก๊ทธ ํ์ธ
# ์ปจํ
์ด๋๊ฐ ์ ์์ ์ผ๋ก ์คํ ์ค์ธ์ง ํ์ธ
sudo docker ps
# ์ปจํ
์ด๋์ ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธ
sudo docker logs my_webserver
# ์ปจํ
์ด๋ ์ค์ง
sudo docker stop my_webserver
# ์ปจํ
์ด๋ ์ญ์
sudo docker rm my_webserver