[๐Ÿ‹Docker] ๋„์ปค๋ฅผ ์ด์šฉํ•ด ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ณ  Hub์— ์˜ฌ๋ ค๋ณด์ž!

vincaยท2023๋…„ 12์›” 11์ผ
0

๋„์ปค ์™ธ๋ถ€ ๋…ธ์ถœ

docker container run --name=my_nginx -d -p 8080:80 nginx:latest

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„์ปค ๋ฐ์Šคํฌํ†ฑ์—์„œ ๋ฐฐํฌ๋œ index.html ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

localhost:8080์„ ํ†ตํ•ด์„œ ์ ‘์†ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •๋œ ํŒŒ์ผ(html)์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„์ปค๋กœ ์›น ์—”์ง„ ๋ฐฐํฌํ•˜๊ธฐ

  1. free-css ์‚ฌ์ดํŠธ์˜ HTML ์˜ˆ์ œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.
Invoke-WebRequest -Uri "https://www.free-css.com/assets/files/free-css-templates/download/page296/oxer.zip" -OutFile "./my_web.zip"
  1. ๋„์ปค ๋ณต์‚ฌ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ my_nginx ์ปจํ…Œ์ด๋„ˆ์˜ /usr/share/nginx/html ์œ„์น˜์— zipํŒŒ์ผ์„ ๋ณต์‚ฌํ•œ๋‹ค.
docker cp my_web.zip my_nginx:/usr/share/nginx/html
  1. exec ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ my_nginx ์ปจํ…Œ์ด๋„ˆ์— zip๋กœ ๋ณต์‚ฌ๋˜์–ด ์ €์žฅ๋œ ํŒŒ์ผ์„ ์••์ถ•ํ•ด์ œ

  1. ์—…๋ฐ์ดํŠธ ์ˆ˜ํ–‰ ๋ฐ ํŒŒ์ผ ์••์ถ• ํ•ด์ œ
# ์—…๋ฐ์ดํŠธ ์ˆ˜ํ–‰
docker exec -it my_nginx apt-get update
docker exec -it my_nginx apt-get install -y unzip
# ํŒŒ์ผ ์••์ถ• ํ•ด์ œ
docker exec -it my_nginx unzip /usr/share/nginx/html/my_web.zip -d /usr/share/nginx/html

  1. ๊ทธ๋ž˜์„œ cp ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ oxer-html ํด๋” ๋‚ด ํŒŒ์ผ์„ html ํด๋”๋กœ ๋ณต์‚ฌํ•œ๋‹ค.
docker exec -it my_nginx cp -R /usr/share/nginx/html/oxer-html/. /usr/share/nginx/html/

๐Ÿง ๋ณต์‚ฌ ํ•˜์ง€ ๋ง๊ณ , mv ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ oxer-html ํด๋”์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์ „๋ถ€ html ํŒŒ์ผ๋กœ ์ด๋™์‹œํ‚ค๋ฉด ์•ˆ๋˜๋Š”๊ฐ€?
โš ๏ธํ•˜์ง€ ๋ชปํ•œ๋‹ค.
mv ๋ช…๋ น์–ด๊ฐ€ ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ. ์™œ? ๊ฐ™์€ ๋ถ€๋ชจ์— ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  1. ๊ธฐ์กด oxer-html ํด๋”๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
docker exec -it my_nginx rm -rf /usr/share/nginx/html/oxer-html

์ ‘์† ๊ฒฐ๊ณผ

์ปจํ…Œ์ด๋„ˆ๋กœ๋ถ€ํ„ฐ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ

์ด์ œ ์ˆ˜์ •๋œ ์ปจํ…Œ์ด๋„ˆ๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ด๋ณด์ž.

  1. ์ด๋ฏธ์ง€ ์ƒ์„ฑ
docker container commit -a "vincakorea" my_nginx vincakorea/my_nginx:1.0

  1. ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ
docker container stop my_nginx
docker container rm my_nginx

  1. ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์‹œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ.
docker container run --name=my_nginx -d -p 8080:80 vincakorea/my_nginx:1.0

  1. ์ด์ œ ์›น ํŽ˜์ด์ง€๋กœ ์ ‘์†ํ•ด๋ณด๋ฉด?

์ ‘์† ๊ฒฐ๊ณผ

๋‚ด๊ฐ€ ๋งŒ๋“  ์ด๋ฏธ์ง€๊ฐ€ ์ ์šฉ๋˜์–ด ๊ทธ๋Œ€๋กœ ํŽ˜์ด์ง€๊ฐ€ ์ž˜ ๋‚˜์™€์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

๋งŒ๋“  ์ด๋ฏธ์ง€ ๋ฐฐํฌ

๋„์ปค ํ—ˆ๋ธŒ๋ž€?

๋‚ด ๋กœ์ปฌ์— ์žˆ๋Š” ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋‚ด์˜ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ณ , ๋‚จ์ด ์˜ฌ๋ ค๋‘” Public ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.

์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ ค ๋ณด๋„๋ก ํ•˜์ž.

1. ๋„์ปคํ—ˆ๋ธŒ ๋กœ๊ทธ์ธ

docker login

2. Push

๋‚ด ๋„์ปคํ—ˆ๋ธŒ์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ช…๋ น์–ด push

์ด ๋•Œ, ์ค‘์š”ํ•œ ์ ์€ ์ด๋ฏธ์ง€์˜ ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ• ๋•Œ <๋‚ด ๋„์ปค ์•„์ด๋””>/<REPOSITORY>:<TAG> ํ˜•ํƒœ๋กœ ์จ์ค˜์•ผํ•œ๋‹ค. <๋‚ด ๋„์ปค ์•„์ด๋””>๊ฐ€ ๋กœ๊ทธ์ธํ•œ ์•„์ด๋””์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ๋„์ปค ํ—ˆ๋ธŒ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๋Š”๋‹ค.

# ์ด๋ฏธ์ง€์— ํƒœ๊ทธ ์ง€์ • (์—ฌ๊ธฐ์„  ์ด๋ฏธ ํƒœ๊ทธ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•„์š”์—†๋‹ค)
docker tag ubuntu:latest vincakorea/my_nginx:1.0
# ๋„์ปค ํ—ˆ๋ธŒ์— Push (๋‹ค๋ฅธ ๊ณณ์—์„œ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ)
docker image push vincakorea/my_nginx:1.0

๋ ˆํฌ์ง€ํ† ๋ฆฌ ์‚ญ์ œ ๋ฐฉ๋ฒ•

๋„์ปค ํ—ˆ๋ธŒ์— ์ด๋ฏธ ์˜ฌ๋ผ๊ฐ„ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ด๋ฏธ์ง€๋Š” CLI ํ™˜๊ฒฝ์—์„œ๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.

CLI์—์„œ๋Š” ๋กœ์ปฌ์—์žˆ๋Š” ์ด๋ฏธ์ง€๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ์ง์ ‘ ๋„์ปคํ—ˆ๋ธŒ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•ด์„œ ์ง€์›Œ์ค˜์•ผ ํ•œ๋‹ค.

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€