๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/Docker & Kubernetes

[Docker] (8) ๋„์ปค commit(์ปค๋ฐ‹) & push(ํ‘ธ์‹œ) - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ์šด ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ  ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์—…๋กœ๋“œ

by ๋ญ…์ฆค 2023. 8. 21.
๋ฐ˜์‘ํ˜•
Docker ์ „์ฒด ํฌ์ŠคํŒ…
๋”๋ณด๊ธฐ

[Docker] (1) ๋„์ปค ๊ฐœ๋… ์„ค๋ช… | ๋„์ปค๋Š” ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ?

[Docker] (2) ๋„์ปค & ๋„์ปค์ปดํฌ์ฆˆ ๋‹ค์šด๋กœ๋“œ

[Docker] (3) ๋„์ปค ํ•ต์‹ฌ ๊ฐœ๋… - ์ด๋ฏธ์ง€, ์ปจํ…Œ์ด๋„ˆ, ๋„์ปค ํ—ˆ๋ธŒ

[Docker] (4) docker pull(์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ) & docker run(์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ/์‹คํ–‰) & ํฌํŠธํฌ์›Œ๋”ฉ(ํฌํŠธ๋งคํ•‘)

[Docker] (5) ๋„์ปค run ๋ช…๋ น์–ด ์˜ต์…˜, ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

[Docker] (6) ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘์†ํ•˜๊ธฐ - docker exec & docker attach

[Docker] (7) ๋„์ปค volume(๋ณผ๋ฅจ) ์˜ต์…˜ - ์ปจํ…Œ์ด๋„ˆ ํด๋”์™€ ํ˜ธ์ŠคํŠธ ํด๋” ์—ฐ๊ฒฐํ•˜๊ธฐ

[Docker] (8) ๋„์ปค commit(์ปค๋ฐ‹) & push(ํ‘ธ์‹œ) - ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ์šด ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•˜๊ณ  ๋ ˆํผ์ง€ํ† ๋ฆฌ์— ์—…๋กœ๋“œ

[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

 

๋„์ปค ์ปค๋ฐ‹ & ํ‘ธ์‹œ ์‚ฌ์šฉ ์˜ˆ์‹œ

ubuntu ์ด๋ฏธ์ง€ run

 

์‹คํ–‰ํ•œ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†

apt update
apt install vim
  • ์šฐ์„  ubuntu ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด ์ฃผ๊ณ 
  • ์‹คํ–‰ํ•œ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋งŒ๋“ ๋‹ค. ์˜ˆ์‹œ์—์„  apt update, apt install vim ๋ช…๋ น์–ด ์‹คํ–‰

 

๋„์ปค ํ—ˆ๋ธŒ์—์„œ ๋ ˆํผ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ

  • ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ์ปค๋ฐ‹ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
  • ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •๊ณผ ๋น„์Šท

 

์‹คํ–‰ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ปค๋ฐ‹

  • ์ด๋ ‡๊ฒŒ ์ฒ˜์Œ ์ƒ์„ฑํ–ˆ์„ ๋•Œ ๋Œ€๋น„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ปค๋ฐ‹ ๋ช…๋ น์–ด๋กœ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ ์ €์žฅ 
  • ubuntu ์ด๋ฏธ์ง€๋กœ ์ƒ์„ฑํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆ˜์ •ํ•ด์„œ {Namespace}/my-ubuntu ๋ผ๋Š” ์ด๋ฏธ์ง€๋กœ ์ €์žฅ (1.0 ํƒœ๊ทธ๋„ ์„ค์ •)
    • ๋„์ปค ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ด๋ฆ„๊ณผ ์ปค๋ฐ‹์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ด๋ฏธ์ง€ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค
  • update, install๋กœ ์ธํ•ด ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

 

์ปค๋ฐ‹์œผ๋กœ ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ push
๋„์ปค ํ—ˆ๋ธŒ์— ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€

 

  • docker push ๋ช…๋ น์–ด๋กœ ๋„์ปค ํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ด๋ฏธ์ง€๊ฐ€ ์—…๋กœ๋“œ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค
๋ฐ˜์‘ํ˜•