๋์ปค(Docker)๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๊ฐ์ํ ๊ธฐ์ ์ ๋ํ์ฃผ์์ ๋๋ค. ์ปจํ ์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ฒด์ ์์ค์์ ๊ฒฉ๋ฆฌํ์ฌ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ๊ณ ์คํํ ์ ์๊ฒ ํด์ค๋๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ ๋์ปค์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ค์ต ๋ช ๋ น์ด๋ค์ ํตํด ๋์ปค์ ์๋ ๋ฐฉ์์ ๊ฐ๋จํ ์ตํ๋ณด๊ฒ ์ต๋๋ค.
๋์ปค ์ด๋ฏธ์ง vs ์ปจํ ์ด๋
- ์ด๋ฏธ์ง(Image): ๋ง์น CD์ฒ๋ผ ์ฝ๊ธฐ ์ ์ฉ(๐ ReadOnly)์ ๋๋ค. ์ํํธ์จ์ด ์คํ์ ํ์ํ ํ์ผ ์์คํ ๊ณผ ์ค์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
- ์ปจํ ์ด๋(Container): ์ด๋ฏธ์ง๋ฅผ ์คํํ์ฌ ๋ง๋ ์คํ ์ธ์คํด์ค์ ๋๋ค. ์ค์ ๋ก ์๋ํ๋ ‘ํ๋ก์ธ์ค’๋ก ์๊ฐํ๋ฉด ์ดํด๊ฐ ์ฝ์ต๋๋ค.
์ฆ, ์ด๋ฏธ์ง๊ฐ ์์ด์ผ ์ปจํ ์ด๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
1. ์ปจํ ์ด๋ ์์ฑ ๋ฐ ์คํ
docker container run -it centos bash
- centos๋ผ๋ ์ด๋ฏธ์ง๊ฐ ๋ก์ปฌ์ ์์ ๊ฒฝ์ฐ, **๋์ปค ํ๋ธ(Docker Hub)**์์ ์๋์ผ๋ก ๊ฐ์ ธ์ต๋๋ค.
- -it ์ต์ ์ ํฐ๋ฏธ๋ ์ ๋ ฅ์ ๋ฐ์์ ์ปจํ ์ด๋ ๋ด๋ถ๋ก ์ง์ ํ ์ ์๊ฒ ํด์ค๋๋ค.
- ๋ช ๋ น์ด ๋ง์ง๋ง์ bash๋ ์คํํ ์์ ์ง์ ํ ๊ฒ์ ๋๋ค.
โ ์ฐธ๊ณ : docker run ๋ค์ container๋ฅผ ๋ช ์ํ๋ ๊ฒ์ด ์ต์ ๋ฒ์ ์์ ๊ถ์ฅ๋ฉ๋๋ค. (docker run์ ์ฌ์ ํ ์๋ํ์ง๋ง ๊ถ์ฅ๋์ง ์์)
2. ์ปจํ ์ด๋ ์ผ์ ์ ์ง vs ์ข ๋ฃ
- Ctrl + P, Q: ์ปจํ ์ด๋๋ฅผ ์ข ๋ฃํ์ง ์๊ณ ๋น ์ ธ๋์ค๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๊ณ์ ์คํ๋ฉ๋๋ค.
- exit: ์ปจํ ์ด๋ ์์ ์ข ๋ฃ. ๋ค์ ์คํํ๋ ค๋ฉด ์ปจํ ์ด๋๋ฅผ ์ฌ์์ํ๊ฑฐ๋ ์๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค.
3. ์คํ ์ค์ด๋ ์ปจํ ์ด๋ ๋ค์ ์ ์
docker container attach [์ปจํ
์ด๋ ID]
ํน์ ์ปจํ ์ด๋์ ๋ค์ ์ ์ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
4. ์ด๋ฏธ์ง์ ์ปจํ ์ด๋ ๋ชฉ๋ก ํ์ธ
docker image ls docker container ps -a
REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB
- image ls: ๋ค์ด๋ก๋๋ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค.
- container ps -a: ์ข ๋ฃ๋ ์ปจํ ์ด๋ ํฌํจ ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์กฐํํฉ๋๋ค.
5. ์ปจํ ์ด๋๋ ํ๋ก์ธ์ค๋ค?
ps -ef | grep [์ปจํ
์ด๋ ID]
์ปจํ ์ด๋๋ ํธ์คํธ ์์คํ ์ ์ฅ์์ ๋ณด๋ฉด ํ๋์ ํ๋ก์ธ์ค๋ก ๋์ํฉ๋๋ค. ์ด ๋ง์ ๊ณง kill ๋ช ๋ น์ผ๋ก๋ ์ข ๋ฃํ ์ ์๋ค๋ ๋ป์ ๋๋ค.
kill -9 [PID]
๋์ปค ๋ช ๋ น์ด ์ธ์๋ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ก๋ ์ ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์ ์์๋๋ฉด ์ ์ฉํฉ๋๋ค.
6. ์ด๋ฏธ์ง ๋ฐ ์ปจํ ์ด๋ ์ผ๊ด ์ญ์
๋์ปค๋ ์ค์ต์ ๋ง์ด ํ๋ค ๋ณด๋ฉด ์ด๋ฏธ์ง์ ์ปจํ ์ด๋๊ฐ ์๋ฉ ์์ ๋๋ค. ์ด๋ฅผ ํ ๋ฒ์ ์ ๋ฆฌํ๋ ๋ช ๋ น์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ ๋ชจ๋ ์ปจํ ์ด๋ ๊ฐ์ ์ญ์
docker container rm -f $(docker ps -a -q)
- docker ps -a -q: ๋ชจ๋ ์ปจํ ์ด๋ ID ์ถ์ถ
- docker container rm -f: ๊ฐ์ ์ญ์
โ ๋ชจ๋ ์ด๋ฏธ์ง ๊ฐ์ ์ญ์
docker image rm -f $(docker image ls -q)
- docker image ls -q: ์ด๋ฏธ์ง ID๋ง ์ถ์ถ
- docker image rm -f: ์ด๋ฏธ์ง ๊ฐ์ ์ญ์
๐ ์ ๋ฆฌ: ๋์ปค ๋ช ๋ น์ด ํต์ฌ ์์ฝ
| docker image ls | ์ด๋ฏธ์ง ๋ชฉ๋ก ์กฐํ |
| docker container ps -a | ๋ชจ๋ ์ปจํ ์ด๋ ์กฐํ (์ข ๋ฃ ํฌํจ) |
| docker container run -it centos bash | CentOS ์ปจํ ์ด๋ ์คํ ๋ฐ ์ ์ |
| docker container attach [ID] | ์ค์ง๋ ์ปจํ ์ด๋ ์ฌ์ ์ |
| docker container rm -f $(docker ps -a -q) | ๋ชจ๋ ์ปจํ ์ด๋ ๊ฐ์ ์ญ์ |
| docker image rm -f $(docker image ls -q) | ๋ชจ๋ ์ด๋ฏธ์ง ๊ฐ์ ์ญ์ |
โ๏ธ ๋ง๋ฌด๋ฆฌ
์ด๋ฒ ์ค์ต์ ํตํด ๋์ปค์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
๊ณผ ์ค์ต ๋ช
๋ น์ด๋ค์ ์ตํ๋ณด์์ต๋๋ค. ๋จ์ํ ๋ช
๋ น์ด๋ฅผ ์ธ์ฐ๊ธฐ๋ณด๋ค๋, ์ปจํ
์ด๋๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง, ์ด๋ฏธ์ง์ ์ด๋ค ๊ด๊ณ๊ฐ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ํธ์คํธ ์์คํ
๊ณผ ์ด๋ค ๊ด๊ณ๋ฅผ ๊ฐ์ง๋์ง๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋์์ด ๋์ จ๋ค๋ฉด ๋๊ธ๊ณผ ๊ณต๊ฐ ๋ถํ๋๋ฆฝ๋๋ค ๐