Post

๐Ÿ‹ Docker ์ž…๋ฌธ โ…ฃ - Image์™€ DockerHub

๐Ÿ‹ Docker ์ž…๋ฌธ โ…ฃ - Image์™€ DockerHub

๐Ÿ“˜ ใ€Ž๊ทธ๋ฆผ๊ณผ ์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” Docker & ์ฟ ๋ฒ„๋„คํ‹ฐ์Šคใ€๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

Container๋กœ Image ๋งŒ๋“ค๊ธฐ

1
2
3
4
# commit ์ปค๋งจ๋“œ
docker commit ์ปจํ…Œ์ด๋„ˆ_์ด๋ฆ„ ์ƒˆ๋กœ์šด_์ด๋ฏธ์ง€_์ด๋ฆ„
# Dockerfile ์Šคํฌ๋ฆฝํŠธ
docker build -t ์ƒ์„ฑํ• _์ด๋ฏธ์ง€์ง€_์ด๋ฆ„ ์žฌ๋ฃŒ_ํด๋”_๊ฒฝ๋กœ

Container ๊ฐœ์กฐ

  • Container์—์„œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์„ค์ •์„ ๋ณ€๊ฒฝContainer์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์šฐ๋ฆฌ์˜ ๋ช…๋ น์–ด๋ฅผ ์ „๋‹ฌํ•ด์ค„ shell์ด ํ•„์š”ํ•˜๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ Container์—๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” bash ์…ธ์ด ์„ค์น˜๋˜์–ด์žˆ๋‹ค.
  • docker run -it ๋˜๋Š” docker exec -it ์ปค๋งจ๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์‹คํ–‰ ์ค‘์ธ Container์—๋Š” docker exec -it๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • docker run -it๋ฅผ ํ†ตํ•ด ์…ธ์„ ๊ตฌ๋™ํ•˜๋ฉด ์ •์ž‘ ์†Œํ”„ํŠธ์›จ์–ด(์•„ํŒŒ์น˜ ๋“ฑ)์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.
  • bash๋ฅผ ํ†ตํ•ด Container ๋‚ด๋ถ€๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋™์•ˆ์—๋Š” Docker ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • Container ์•ˆ์—์„œ ํ•  ์ผ์„ ๋งˆ์ณค๋‹ค๋ฉด exit๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ Container์—์„œ ๋‚˜์™€์•ผ ํ•œ๋‹ค.
  • ์ •๋ฆฌํ•˜๋ฉด Docker ์—”์ง„์„ ํ†ตํ•ด Container๋ฅผ ์กฐ์ž‘ํ•˜๊ณ , Container ๋‚ด๋ถ€์—์„œ๋Š” bash๋ฅผ ํ†ตํ•ด Container ์† ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‹คํ–‰, ์ข…๋ฃŒ, ์„ค์ • ๋ณ€๊ฒฝ, ํŒŒ์ผ ๋ณต์‚ฌ ๋ฐ ์ด๋™, ์‚ญ์ œ ๋“ฑ์˜ ์ž‘์—…์„ ํ•œ๋‹ค.
  • Docker์™€ Container๋Š” ๋ณ„๊ฐœ์˜ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ฐ€๋ น ํ˜ธ์ŠคํŠธ์˜ ์šด์˜์ฒด์ œ์™€ Container A, Container B์˜ ์šด์˜์ฒด์ œ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋ช…๋ น์–ด๊ฐ€ ๋ชจ๋‘ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • Docker์—์„œ ๊ณต์‹์ ์œผ๋กœ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ๋ฐ๋น„์•ˆ ๊ณ„์—ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ๋ช…ํ™•ํžˆ ๋ฐฉ์นจ์„ ๋ฐํ˜”๋‹ค.

DockerHub

  • Image๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ณณ์„ Docker Registry๋ผ๊ณ  ํ•œ๋‹ค.
  • Docker ํ—ˆ๋ธŒ๋Š” Docker ์ œ์ž‘์‚ฌ์—์„œ ์šด์˜ํ•˜๋Š” ๊ณต์‹ Docker Registry๋‹ค.
  • ์™ธ๋ถ€์— ๊ณต๊ฐœ๋˜์ง€ ์•Š์€ Docker Registry๋„ ์žˆ๋‹ค.
  • Registry๋Š” Image๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์žฅ์†Œ์ด๋‹ค.
  • Repository๋Š” Registry๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹จ์œ„๋‹ค.

Tag

  • Image๋ฅผ ์—…๋กœ๋“œํ•˜๋ ค๋ฉด Image์— ํƒœ๊ทธ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค.
  • ํƒœ๊ทธ๋Š” Registry ์ฃผ์†Œ ๋˜๋Š” Docker ํ—ˆ๋ธŒ ID / Repository๋ช… / ๋ฒ„์ „์˜ ํ˜•์‹์„ ๋ค๋‹ค.
  • ๋ฒ„์ „์€ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ด€๋ฆฌ ์ฐจ์›์—์„œ ๋ถ™์ด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Image์— ํƒœ๊ทธ๋ฅผ ๋ถ€์—ฌํ•ด ๋ณต์ œ

1
docker tag ๊ธฐ์กด_์ด๋ฏธ์ง€_์ด๋ฆ„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ_์ฃผ์†Œ/๋ ˆํฌ์ง€ํ† ๋ฆฌ_์ด๋ฆ„:๋ฒ„์ „

Image ์—…๋กœ๋“œ

1
docker push ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ_์ฃผ์†Œ/๋ ˆํฌ์ง€ํ† ๋ฆฌ_์ด๋ฆ„:๋ฒ„์ „
  • ํƒœ๊ทธ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” Registry์˜ Repository๋กœ ์—…๋กœ๋“œ ํ•œ๋‹ค.
  • Repository๋Š” ์ฒ˜์Œ ์—…๋กœ๋“œํ•  ๋•Œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š์œผ๋‚˜ push ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ๋งŒ๋“ค์–ด์ง„๋‹ค.
  • Docker ํ—ˆ๋ธŒ์— ๋ฏธ๋ฆฌ Repository๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  pushํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๋‹ค.
  • push๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ Repository๋Š” ์ž๋™์ ์œผ๋กœ public ์ƒํƒœ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋น„๊ณต๊ฐœ Registry ๋งŒ๋“œ๋Š” ๋ฒ•

1
docker run -d -p 5000:5000 registry
  • ๋น„๊ณต๊ฐœ Registry๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” Registry์šฉ Container๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • Registry๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํŠธ 5000์„ ์‚ฌ์šฉํ•œ๋‹ค.
This post is licensed under CC BY 4.0 by the author.