Docker ์ ์ฒด ํฌ์คํ
[Docker] (1) ๋์ปค ๊ฐ๋ ์ค๋ช | ๋์ปค๋ ์ ์ฌ์ฉํ๋ ๊ฑธ๊น?
[Docker] (2) ๋์ปค & ๋์ปค์ปดํฌ์ฆ ๋ค์ด๋ก๋
[Docker] (3) ๋์ปค ํต์ฌ ๊ฐ๋ - ์ด๋ฏธ์ง, ์ปจํ ์ด๋, ๋์ปค ํ๋ธ
[Docker] (5) ๋์ปค run ๋ช ๋ น์ด ์ต์ , ๋์ปค ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋์ง ์๊ฒ ํ๋ ๋ฐฉ๋ฒ
[Docker] (6) ๋์ปค ์ปจํ ์ด๋๋ก ์ ์ํ๊ธฐ - docker exec & docker attach
[Docker] (7) ๋์ปค volume(๋ณผ๋ฅจ) ์ต์ - ์ปจํ ์ด๋ ํด๋์ ํธ์คํธ ํด๋ ์ฐ๊ฒฐํ๊ธฐ
[Docker] (9) Dockerfile(๋์ปคํ์ผ) - ์ค๋งํธํ๊ฒ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐฉ๋ฒ
[Docker] (10) Dockerfile ๋น๋ ์์ | ENTRYPOINT ์ CMD์ ์ฐจ์ด
[Docker] (11) ๋์ปค ์ปจํ ์ด๋์ vscode ์ฐ๋ํ๊ธฐ | ๋์ปค ์ปจํ ์ด๋์์ ๊ฐ๋ฐ
[Docker] (12) ๊นํ๋ธ๋ก ๋์ปค ์ด๋ฏธ์ง ๊ณต์ ํ๊ธฐ | Packages Container Registry
์ด๋ฒ์๋ ๋์ปค ์ปค๋ฐ์ผ๋ก ๋์ปค ์ปจํ ์ด๋๋ฅผ ์ด๋ฏธ์ง๋ก ์ ์ฅํ๊ณ , ๋์ปค ํธ์๋ฅผ ํตํด ๋์ปค ํ๋ธ์ ์๊ฒฉ ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
docker commit
๋์ปค(Docker)์ docker commit ๋ช ๋ น์ด๋ ๋์ปค ์ปจํ ์ด๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ก์ด ๋์ปค ์ด๋ฏธ์ง๋ก ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด๋ก, git์ commit๊ณผ ์ ์ฌํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ๊ธฐ์กด ์ปจํ ์ด๋์์ ๋ณ๊ฒฝ๋ ์ํ๋ฅผ ์ด๋ฏธ์ง๋ก ์ปค๋ฐํ์ฌ, ํด๋น ์ด๋ฏธ์ง๋ฅผ ๊ธฐ์กด์ ์ด๋ฏธ์ง์ ์ถ๊ฐ ๋ ์ด์ด๋ก์จ ์ ์ฅํ๊ฒ ๋๋ค. ์ด๋ฅผ ํตํด ์ปจํ ์ด๋์์ ์์ ํ ๋ด์ฉ์ ์ด๋ฏธ์ง๋ก ๋ณด์กดํ๊ฑฐ๋, ์ปจํ ์ด๋์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณต์ ํ๊ฑฐ๋ ๋ฐฐํฌํ ์ ์๋ค.
docker commit ๋ช ๋ น์ด์ ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ๋ค
docker commit [์ต์
] <์ปจํ
์ด๋ID ๋๋ ์ด๋ฆ> <์๋ก์ด_์ด๋ฏธ์ง_์ด๋ฆ>
์ฌ๊ธฐ์ <์ปจํ ์ด๋ID ๋๋ ์ด๋ฆ>์ ์ปค๋ฐํ๋ ค๋ ์ปจํ ์ด๋์ ์๋ณ์์ด๊ณ , <์๋ก์ด_์ด๋ฏธ์ง_์ด๋ฆ>์ ์์ฑ๋ ์๋ก์ด ์ด๋ฏธ์ง์ ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
์ต์ ์ผ๋ก๋ ๋ค์ํ ์ค์ ์ด ๊ฐ๋ฅํ๋ค.
- -a, --author: ์ปค๋ฐํ ์ฌ์ฉ์ ๋๋ ์์ฑ์ ์ ๋ณด๋ฅผ ์ง์ ํฉ๋๋ค.
- -c, --change: ์ปจํ ์ด๋์์ ์คํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐํฉ๋๋ค.
- -m, --message: ์ปค๋ฐ์ ๋ํ ๋ฉ์์ง๋ฅผ ์ง์ ํฉ๋๋ค.
- -p, --pause: ์ปจํ ์ด๋๋ฅผ ์ผ์ ์ค์งํ๊ณ ์ปค๋ฐ์ ์ํํฉ๋๋ค. (์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ต์ ์ ๋๋ค)
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ ์ปจํ ์ด๋ ID๊ฐ abc123์ธ ์ปจํ ์ด๋์์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๊ณ ์๋ก์ด ์ด๋ฏธ์ง my-image๋ก ์ปค๋ฐํ๋ค.
docker commit -m "Added new software" abc123 my-image
ํ์ง๋ง ๋์ปค ์ปค๋ฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ด๋ฏธ์ง๋ ํด๋น ์ปจํ ์ด๋์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ๊ฐ ๋ ์ด์ด๋ก ์ ์ฅํ๊ธฐ์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ฑฐ๋ ๋ถํ์ํ ์ค๋ณต ๋ ์ด์ด๊ฐ ์๊ธธ ์ ์๋ค. ๋์ปค ์ปค๋ฐ์ ์ปจํ ์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฏธ์ง๋ก ์ ์ฅํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด๊ธด ํ์ง๋ง, ์ข ๋ ์ฒด๊ณ์ ์ธ ์ด๋ฏธ์ง ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํด์๋ Dockerfile์ ์์ฑํ๊ณ , docker build ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ํฌํจํ ์ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
docker push
๋์ปค(Docker) ์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์์ ์๊ฒฉ ๋์ปค ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋(ํธ์)ํ๋ ๊ณผ์ ์ ์ํํ๋ ๊ฒ์ "๋์ปค ํธ์(Docker Push)"๋ผ๊ณ ํ๋ค. ์ด๋ฅผ ํตํด ๋ก์ปฌ์์ ๋น๋ํ ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ์๊ฒฉ ์๋ฒ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๊ฐ์ฅ ํํ ์ฌ์ฉ๋๋ ๋์ปค ๋ ์ง์คํธ๋ฆฌ๋ Docker Hub, Amazon ECR, Google Container Registry ๋ฑ์ด ์๋ค.
๋์ปค ์ด๋ฏธ์ง๋ฅผ ํธ์ํ๊ธฐ ์ํด์ , ๋จผ์ ์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ์์ ๋น๋ํ๊ณ ํ๊ทธ๋ฅผ ๋ถ์ฌ์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ์๊ฒฉ ๋ ์ง์คํธ๋ฆฌ๋ก ํธ์ํ ์ ์๋ค.
# ์ด๋ฏธ์ง๋ฅผ ์๊ฒฉ ๋ ์ง์คํธ๋ฆฌ์ ํธ์
docker push my-image:tag
๋์ปค ์ปค๋ฐ & ํธ์ ์ฌ์ฉ ์์
apt update
apt install vim
- ์ฐ์ ubuntu ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ํ๋ ๋ง๋ค์ด ์ฃผ๊ณ
- ์คํํ ์ปจํ ์ด๋์ ์ ์ํด ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ ๋ค. ์์์์ apt update, apt install vim ๋ช ๋ น์ด ์คํ
- ๋์ปค ํ๋ธ์์ ์ปค๋ฐํ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๊ธฐ ์ํ ๋ ํฌ์งํ ๋ฆฌ ์์ฑ
- ๊นํ๋ธ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ณผ์ ๊ณผ ๋น์ท
- ์ด๋ ๊ฒ ์ฒ์ ์์ฑํ์ ๋ ๋๋น ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ์ปจํ ์ด๋๋ฅผ ์ปค๋ฐ ๋ช ๋ น์ด๋ก ์๋ก์ด ์ด๋ฏธ์ง๋ก ์ ์ฅ
- ubuntu ์ด๋ฏธ์ง๋ก ์์ฑํ ์ปจํ
์ด๋๋ฅผ ์์ ํด์ {Namespace}/my-ubuntu ๋ผ๋ ์ด๋ฏธ์ง๋ก ์ ์ฅ (1.0 ํ๊ทธ๋ ์ค์ )
- ๋์ปค ๋ ํฌ์งํ ๋ฆฌ ์ด๋ฆ๊ณผ ์ปค๋ฐ์ผ๋ก ์์ฑํ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ด ๊ฐ์์ผ ํ๋ค
- update, install๋ก ์ธํด ์ฉ๋์ด ๋์ด๋ ๊ฒ์ ํ์ธํ ์ ์์
- docker push ๋ช ๋ น์ด๋ก ๋์ปค ํ๋ธ ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ฏธ์ง๊ฐ ์ ๋ก๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค