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

[Docker] (12) ๊นƒํ—ˆ๋ธŒ๋กœ ๋„์ปค ์ด๋ฏธ์ง€ ๊ณต์œ ํ•˜๊ธฐ | Packages Container Registry

by ๋ญ…์ฆค 2023. 8. 31.
๋ฐ˜์‘ํ˜•
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

 

 

๋„์ปคํ—ˆ๋ธŒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, Github(๊นƒํ—ˆ๋ธŒ)๋ฅผ ์ด์šฉํ•˜์—ฌ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ์˜ Packages์—์„œ Container Registry๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ ๊นƒํ—ˆ๋ธŒ ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ์˜ ๊ท€์ฐฎ์€ ์ ˆ์ฐจ๊ฐ€ ์กด์žฌํ•˜๊ธด ํ•œ๋‹ค.

 

 

  1. ๊นƒํ—ˆ๋ธŒ → Settings → Developer Settings → Personal access tokens ์—์„œ ๊ฐœ์ธ ํ† ํฐ ์ƒ์„ฑ
  2. CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์„œ๋น„์Šค์— ๋กœ๊ทธ์ธ
  3. ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ → commit → push
  4. ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
  5. ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์Šคํ† ๋ฆฌ ์—ฐ๋™

 

 

ํ† ํฐ ์ƒ์„ฑ & ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์„œ๋น„์Šค ๋กœ๊ทธ์ธ

  • ๊นƒํ—ˆ๋ธŒ → Settings → Developer Settings → Personal access tokens ์—์„œ ๊ฐœ์ธ ํ† ํฐ ์ƒ์„ฑ
  • ๊ถŒํ•œ์—์„œ write:packages, delete:packages๋ฅผ ์ถ”๊ฐ€
  • ์ƒ์„ฑ๋œ ํ† ํฐ์€ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋ณผ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ €์žฅ

 

export CR_PAT=YOUR_TOKEN
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin

 

์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ commit & push
docker run -dit --name my-ubuntu ubuntu
docker commit my-ubuntu ghcr.io/my_id/my-ubuntu:1.0
docker push ghcr.io/my_id/my-ubuntu:1.0

  • ubuntu ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ
  • commit & push ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด ๊นƒํ—ˆ๋ธŒ Your profile → Package ์—์„œ push ํ•œ ๋„์ปค ์ด๋ฏธ์ง€ ํ™•์ธ ๊ฐ€๋Šฅ

 

์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์—ฐ๋™

 

  • ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ push ํ•ด์„œ ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ Connect Repository ๋ฅผ ํด๋ฆญํ•ด์„œ ์—ฐ๋™ํ•˜๊ณ  ์‹ถ์€ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒ
  • ์—ฐ๋™ ์ดํ›„์—๋Š” ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์—์„œ ์šฐ์ธก Packages ์—์„œ ์—ฐ๋™๋œ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅ
๋ฐ˜์‘ํ˜•