๐Ÿ“Œ ๊ณต๋ถ€ ๊ณ„๊ธฐ

์ถ”๊ฐ€์ ์ธ ๋„์ปค ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ์œ ํŠœ๋ธŒ ๋”ฐ๋ฐฐ๋„ ๋„์ปค ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•ด ๋ด…๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

 

๐Ÿ“5-1. ์ปจํ…Œ์ด๋„ˆ ๋ณด๊ด€์ฐฝ๊ณ  : ์ด๋ก ํŽธ

1๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ๋ณด๊ด€ ์ฐฝ๊ณ  (Registry)๊ฐ€ ์žˆ์–ด์š”?

 

* Registry๋Š” ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ

- ์ข…๋ฅ˜ :

  • Docker Hub : hub.docker.com ๊ณต๊ฐœ Registy๋ฅผ ์˜๋ฏธ
  • Private Registry : ์‚ฌ๋‚ด์˜ ์ปจํ…Œ์ด๋„ˆ ์ €์žฅ์†Œ

2๏ธโƒฃ docker hub (Registry) ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ด์š”.

 

1) docker hub์— ๊ฐ€์ž…

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

2) explore๋กœ ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ 

3) ๊ฐœ์ธ Repository๋„ ๊ฐ€๋Šฅ

๊ฐœ์ธ Repository์˜ ์ด๋ฏธ์ง€๋„ ๊ณต๊ฐœ๊ฐ€ ๋œ๋‹ค. ๊ณต๊ฐœํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ๋ณ„๋„์˜ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผํ•จ.

 

 

4) ์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ dokcer hub ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

docker search ํ‚ค์›Œ๋“œ

ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์คŒ

 


3๏ธโƒฃ Private Registry๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์–ด์š”.

์‚ฌ๋‚ด์—์„œ๋งŒ ์ด์šฉํ•˜๋Š” Registry๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์š”!

 

๊ทธ๋Ÿฌ๋ฉด ํ—ˆ๋ธŒ์—์„œ registry ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์•„๋ผ

์ด๊ฒŒ ์ปจํ…Œ์ด๋„ˆ Registry๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ด๋ฏธ์ง€

 

registry - Official Image | Docker Hub

About Official Images Docker Official Images are a curated set of Docker open source and drop-in solution repositories. Why Official Images? These images have clear documentation, promote best practices, and are designed for the most common use cases.

hub.docker.com

 

  • ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ Private ์ปจํ…Œ์ด๋„ˆ ์šด์˜
docker run -d -p 5000:5000 --restart always --name registry registry:2

 

 

private repository ์šด์˜ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ pull / push ํ•  ๋•Œ๋Š” 

# ex) docker pull ํ˜ธ์ŠคํŠธ๋„ค์ž„:ํฌํŠธ๋„˜๋ฒ„/์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ 
# ex) docker push ํ˜ธ์ŠคํŠธ๋„ค์ž„:ํฌํŠธ๋„˜๋ฒ„/์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ

์ปจํ…Œ์ด๋„ˆ repository ์ด๋ฆ„์„ ์ ์šฉํ•ด์„œ pull์ด๋‚˜ pushํ•ด์•ผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. (80ํฌํŠธ๋ฉด ์ƒ๋žต๊ฐ€๋Šฅ)

 


๐Ÿ“5-2. ์ปจํ…Œ์ด๋„ˆ ๋ณด๊ด€์ฐฝ๊ณ  : ์‹ค์ŠตํŽธ

1๏ธโƒฃ hub.docker.com์— ์ปจํ…Œ์ด๋„ˆ ์—…๋กœ๋“œ ๋ฐ ๋‹ค์šด๋กœ๋“œ

1) ํ—ˆ๋ธŒ์—์„œ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰

docker search ํ‚ค์›Œ๋“œ

 

2) ์ด๋ฏธ์ง€ ๋‹ค์šด

latest ํƒœ๊ทธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅ

docker pull ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ

 

3) hub์˜ ๊ฐœ์ธ repository์— ์˜ฌ๋ ค๋ณด๊ธฐ

login ๋ช…๋ น์–ด ํ†ตํ•ด์„œ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ 

์•„๋ž˜๋Š” ์ด๋ฏธ ์ „์— ๋กœ๊ทธ์ธํ•œ ๊ธฐ๋ก์ด ์ €์žฅ๋˜์–ด ๋ฐ”๋กœ ๋กœ๊ทธ์ธ ๋จ (๋„์ปค ๋กœ๊ทธ์•„์›ƒ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์œ ์ง€๋จ)

 

4) ์ด๋ฏธ์ง€๋ฅผ ๊ฐœ์ธ repository ์— ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ

๊ณต์‹ ์ด๋ฏธ์ง€ ๋ฐ ๊ฐœ์ธ์ด ์ž‘์„ฑํ•œ ์ด๋ฏธ์ง€๋„ ๊ฐ€๋Šฅ. ๋‹ค๋งŒ, ์ด๋ฏธ์ง€ ์ด๋ฆ„์— ๋„์ปค ๊ณ„์ •์„ ๋ถ™์—ฌ์ค˜์•ผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

docker tag ์›๋ณธ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ ๋„์ปค๊ณ„์ •/๋ฐ”๊ฟ€์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ

์ด์ฒ˜๋Ÿผ ๋„์ปค ๊ณ„์ •์„ ๋ถ™์—ฌ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๋ฉด ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ์— ๊ฐ™์€ ์ด๋ฏธ์ง€๋กœ ์ด๋ฆ„์ด 2๊ฐœ ์กฐํšŒ๊ฐ€ ๋œ๋‹ค. (์ด๋ฏธ์ง€๊ฐ€ 2๊ฐœ์ธ๊ฑด ์•„๋‹˜) 

 

 

5) ๊ฐœ์ธ ๋ ˆํฌ์— push

docker push ๋„์ปค๊ณ„์ •ํฌํ•จ๋œ์ด๋ฏธ์ง€๋ช…

ํ—ˆ๋ธŒ ์‚ฌ์ดํŠธ์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅ

์ด ์ด๋ฏธ์ง€๋Š” ์–ด๋””์„œ๋“  ๋ˆ„๊ตฌ๋“ ์ง€ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์Œ.

 


2๏ธโƒฃ Private Registry ์šด์˜ํ•˜๊ธฐ

๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ ์ง์ ‘ Private Registry๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐฉ์‹

- ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๊ฐ€ ์•ˆ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ์šด์˜ํ•˜๊ธฐ

- ์‚ฌ๋‚ด ์ „์šฉ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

 

1) ํ—ˆ๋ธŒ๋‚˜ ์ปค๋งจ๋“œ์—์„œ registry ๊ฒ€์ƒ‰

 

 

2) registry ์‹คํ–‰

registry๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ runํ•˜๋ฉด ์•Œ์•„์„œ ์ด๋ฏธ์ง€๋ฅผ pull๋ฐ›๊ณ  run์„ ์‹คํ–‰

docker run -d -p 5000:5000 --restart always --name registry registry:2

 

3) ๊ณต์‹ ํ—ˆ๋ธŒ์—์„œ ์ œ๊ณตํ•˜๋Š” Repository๋Š” ์ด๋ฆ„์ด ํ•„์š”์—†์œผ๋‚˜ Private Repository๋Š” ์–ด๋Š ์‹œ์Šคํ…œ์—์„œ ์šด์˜ํ•˜๋Š” Repository์ธ์ง€ ๋ช…์‹œ๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ํ˜ธ์ŠคํŠธ๋„ค์ž„๊ณผ ํฌํŠธ๋ฅผ ํ†ตํ•ด push ํ•˜๊ณ  pull ํ•ด์•ผํ•œ๋‹ค 

ํ˜ธ์ŠคํŠธ ๋„ค์ž„ ํ™•์ธ ๋ฐ Private Repository ํฌํŠธ ํ™•์ธ

 

4) ํ—ˆ๋ธŒ์˜ ๊ฐœ์ธ Repository์ฒ˜๋Ÿผ ์ด๋ฏธ์ง€์— ํ•ด๋‹น ํ˜ธ์ŠคํŠธ๋„ค์ž„๊ณผ ํฌํŠธ๊ฐ€ ํฌํ•จ๋˜์•ผ ํ•œ๋‹ค.

docker tag ์›๋ณธ์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ ํ˜ธ์ŠคํŠธ๋„ค์ž„:ํฌํŠธ/์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ

๋ณด์‹œ๋‹ค์‹œํ”ผ ๊ฐ™์€ ์ด๋ฏธ์ง€ ์•„์ด๋””๋กœ ์ด๋ฆ„๋งŒ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

 

 

5) Private Repository์— push

 

 

๐Ÿšฉํ˜ธ์ŠคํŠธ ๋„ค์ž„์œผ๋กœ ํ•  ๋•Œ

๋”๋ณด๊ธฐ

 

๋‚ด๋ถ€์—์„œ๋Š” localhost๋กœ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์™ธ๋ถ€๋ฉด ํ˜ธ์ŠคํŠธ๋„ค์ž„์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œ์‹œํ•ด์•ผํ•จ

์•—? ๋กœ์ปฌํ˜ธ์ŠคํŠธ๋กœ๋ž‘ ๋‹ค๋ฅด๊ฒŒ ํ˜ธ์ŠคํŠธ๋„ค์ž„์œผ๋กœ ํ•˜๋Š” ๊ฑด ์‹คํ–‰์ด ์•ˆ๋œ๋‹ค.

docker์€ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ssl ์ธ์ฆ์„ ํ•˜๋Š” https๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์„œ๋ฒ„๋Š” http ์‘๋‹ต์„ ์ฃผ๊ฒŒ๋˜์–ด https์ธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ชป๋ฐ›๊ณ  ์žˆ๋Š” ์ƒํ™ฉ

 

 

์ด ๋ฐฉ๋ฒ• ์ฐธ๊ณ ํ•˜๋ฉด ๋  ๋“ฏํ•˜๋‹ค

 

[Docker] private registry http: server gave HTTP response to HTTPS client ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์˜ค๋Š˜์€ private ํ•œ ํ™˜๊ฒฝ์—์„œ ๋ณ„๋„๋กœ Docker registry๋ฅผ ๊ตฌ์„ฑํ–ˆ์„ ๋•Œ ์ข…์ข… ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ธ http server gave http response to https client์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ docker registry๋Š” docke

bono915.tistory.com

 

 

6) pushํ•œ๊ฑฐ ์–ด๋”” ์žˆ๋‚˜์š”???

var ๋””๋ ‰ํ† ๋ฆฌ๋Š” root ๊ณ„์ •์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

/var/lib/docker/voluems ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํ•˜๋Š˜์ƒ‰์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์Œ

๊ทธ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ์žˆ๊ณ  ์šฐ๋ฆฌ๊ฐ€ pushํ•œ httpd๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

tree ๋ช…๋ น์–ด๋กœ ํŽผ์ณ๋ณธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

 

 

 


โž• ๊ณต๋ถ€์ž๋ฃŒ

5-1 , 5-2 ๋‚ด์šฉ

 

[๋”ฐ๋ฐฐ๋„] ๋„์ปค ์‹œ๋ฆฌ์ฆˆ

 

www.youtube.com

 

+ Recent posts