AWS EC2๋กœ ๋ฐฐํฌ๋ฅผ ํ•ด๋ณด์ž!!(์„œ๋ฒ„ ๋“ค์–ด๊ฐ€๊ธฐ/๋„์ปค๋กœ ๋ฐ›๊ธฐ)

๋ฐ˜๊ฐ‘๋‹ค ์†Œ๋…„!

Profile Picture
JangAJang
2023-11-10

์›๋ณธ1

์›๋ณธ2

Intro

์šฐ๋ฆฌ๊ฐ€ ๋ฐฑ์—”๋“œ์—์„œ ๋ฐฐํฌ๋ผ๋Š” ๊ฒƒ์„ ํ•˜๋Š” ์ด์œ ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž.

๋ฐฐํฌ๋ผ๊ณ  ํ•˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ๋Œ€๋‹จํ•œ ํ–‰๋™์„ ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒฝํ–ฅ์ด ๋‚˜์—๊ฒ ์ž์ฃผ ์žˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ •๋ง ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ๋ฐฐํฌ๋ž€,

public IP๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚ด ์ปดํ“จํ„ฐ์— ๊ณต๊ฐœ IP๋ฅผ ๊ฐ€์ง€๊ฒŒ ํ•˜๊ณ , ์ปดํ“จํ„ฐ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

  1. ๋‚ด ์ปดํ“จํ„ฐ์˜ IP๋Š” ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๋œ๋‹ค.
  2. ๋‚ด ์ปดํ“จํ„ฐ๋Š” ์„œ๋น„์Šค์˜ ๋Š๊น€์ด ์—†๊ฒŒ ํ•ญ์‹œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ , ์ธํ„ฐ๋„ท๋„ ๋Š๊ธฐ๋ฉด ์•ˆ๋œ๋‹ค.
  3. ๋‚ด ์ปดํ“จํ„ฐ๋Š” ์ด์ œ ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ํŒŒ์ผ์ด ์กด์žฌํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค(์–ด๋–ป๊ฒŒ๋“  ํ„ธ๋ฆด ์œ„ํ—˜์ด ์žˆ๋‹ค๋ฉด ์•ˆ๋˜๋‹ˆ๊น)

์ด๋Ÿฐ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•˜๊ณ  ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค?

์„œ๋ฒ„๋ฅผ ์—ฌ๋Š” ๊ณผ์ •

๊ธฐ์กด์— ec2์„œ๋ฒ„๋ฅผ ์ด์šฉํ•œ ๋ฐฑ์—”๋“œ ๋ฐฐํฌ๋ฅผ ๋ช‡ ๋ฒˆ ํ•ด๋ณด์•˜์ง€๋งŒ, ์ด๋ฒˆ์—” ๋ฌธ์„œํ™”๋ฅผ ํ•ด๋ณด๋ฉด์„œ ํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋‚˜๋Š” ubuntu 22.0.4๋ฅผ ์ด์šฉํ•œ ๋ฐฐํฌ๋ฅผ ํ•  ๊ณ„ํš์ด๋‹ค. ์ด ๋•Œ 64๋น„ํŠธ์˜ ์•„ํ‚คํ…์ณ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

์•„๋ž˜์— ์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ t2.micro๋ฅผ ์ด์šฉํ•  ๊บผ์‹œ๋‹ค. ์™œ๋ƒ๊ณ ?

young wild and free!!!

์ดํ›„์— ์•„๋ž˜์—์„œ ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ƒ์„ฑํ•œ ํ‚ค ํŽ˜์–ด๋Š” ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ฐ›๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํ›„์— ssh ๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ํ•ด๋‹น pemํ‚ค(๋งฅ ๊ธฐ์ค€)์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๋„คํŠธ์›Œํฌ ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์ดˆ๊ธฐ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ,

์—ฌ๊ธฐ์—์„œ๊ฐ€ ์•„๋‹Œ, ํ›„์— ๋ณด์•ˆ๊ทธ๋ฃน ์„ค์ • ํƒญ์—์„œ ์ง์ ‘ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์—๊ฒ ๊ฐœ์ธ์ ์œผ๋กœ ๋” ๋งˆ์Œ์— ๋“ค์—ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ตœ์†Œ ํฌ๊ธฐ์™€ ์ตœ๋Œ€ ํฌ๊ธฐ์— ์ œํ•œ์ด(ํ”„๋ฆฌํ‹ฐ์–ด ๊ธฐ์ค€์œผ๋ก ) ์กด์žฌํ–ˆ๋‹ค.

์ตœ๋Œ€ ์Šคํ† ๋ฆฌ์ง€ ๋ณผ๋ฅจ์„ ๊ฐ€์ง€๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค.

์ด์ œ ๋” ์—†๋‹ค.

์ด๋ ‡๊ฒŒ ์‹œ์ž‘์„ ํ•ด์ฃผ์—ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?

์ด๋ ‡๊ฒŒ ๋Œ€๊ธฐ์ค‘์œผ๋กœ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‚˜์˜จ๋‹ค.

๊ธฐ๋‹ค๋ฆฌ๋ฉด ์‹คํ–‰์ค‘์œผ๋กœ ๋ฐ”๋€๋‹ค. ์ธ์Šคํ„ด์Šค id๋ฅผ ํด๋ฆญํ•ด๋ณด์ž.

์ธ์Šคํ„ด์Šค ์„ธ๋ถ€ ์ •๋ณด์ค‘์— public ipv4๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด๊ฑธ ๋ณต์‚ฌํ•œ๋‹ค.

๋งฅ ๊ธฐ์ค€์œผ๋กœ๋Š” ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด, ๋‹ค์šด๋กœ๋“œ ํƒญ์œผ๋กœ ์ด๋™ํ•˜์ž.

ํƒญ์— ์กด์žฌํ•˜๋Š” pemํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ssh ์— ํ†ต์‹  ์š”์ฒญ์„ ํ•ด์•ผํ•œ๋‹ค.

chmod 400 ${pemํ‚ค ์ด๋ฆ„}.pem

์ด๋Ÿฐ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด pemํ‚ค์— ๋Œ€ํ•œ ์ž๊ธฐ ์ž์‹ ์˜ ์ฝ๊ธฐ ๊ถŒํ•œ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ์ฝ๊ธฐ ๊ถŒํ•œ์œผ๋กœ pemํ‚ค ํŒŒ์ผ์„ ์ฝ๊ณ , ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ์•”ํ˜ธํ‚ค๋กœ EC2 ์ธ์Šคํ„ด์Šค์— ์›๊ฒฉ ์ ‘์†์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ssh -i `์ฃผ์†Œ/pemํ‚ค` ubuntu@`ํผ๋ธ”๋ฆญ IPv4`

์ด๋Ÿฐ ๋ช…๋ น์œผ๋กœ ์„œ๋ฒ„์— ์ ‘์†์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ๋ฐฐํฌ์— ๋Œ€ํ•œ Hello World๋ฅผ ์„ฑ๊ณตํ–ˆ๋‹ค.


Docker๋กœ ๋ฐฐํฌํ•˜๊ธฐ

๋ฐฐํฌ๋ฅผ Docker๋กœ ํ•˜๋Š” ์ด์œ ?

์‰ฝ๊ฒŒ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ git clone, docker์˜ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ, git clone์„ ํ–ˆ์„ ๋•Œ, ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค.

  • git clone์œผ๋กœ๋Š” .gitignoreํ•œ ํŒŒ์ผ์„ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.
  • Java, Typescript๋Š” ๊ฐ์ž์˜ ํŒŒ์ผ์„ .class, .jsํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ๋งํ•ด์•ผํ•˜๋Š” ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ์ปดํŒŒ์ผ๋งํ•œ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ๋” ์‚ฌ์ด์ฆˆ๋ฅผ ์ž‘๊ฒŒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์„œ๋ฒ„ ์ž์ฒด์—์„œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋“ค์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋งŒ์•ฝ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž‘์€ ๋‹จ์œ„๋กœ(๊ทธ๊ฒŒ MSA์ฃ ?) ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค๋ฉด, ์ด๊ฑธ ํ•˜๋‚˜์”ฉ ์ฐพ์•„์„œ ๊บผ์ค˜์•ผํ•œ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋„์ปค๋ผ๋Š” ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๋Œ ๋•Œ ๊ทธ ํ™˜๊ฒฝ์„ ๊บผ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋„์ปค๊ฐ€ ๋ญ”๋ฐ??

๋„์ปค๋ž€, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ปจํ…Œ์ด๋„ˆํ™” ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ”Œ๋žซํผ์ด๋‹ค. ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ทธ๋ฆฌ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์ด๋‹ค. ๋ผ๋Š” ๋ง์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋งํ•ด์ฃผ๋Š” ๊ณต์‹์ ์ธ ๋‹ต๋ณ€์ด๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‚˜๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋…์„ ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

๋…๋ฆฝ๋œ ํ™˜๊ฒฝ, ์ฆ‰ ๋…๋ฆฝ๋œ ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ(?!)๋ฅผ ์‚ฌ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

ํ•ด๋‹น ์ปดํ“จํ„ฐ๋Š” ์ •๋ง๋กœ ๊ทธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ํ™˜๊ฒฝ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ์ตœ์†Œํ•œ์˜ ํ™˜๊ฒฝ/์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐ€์ง„ ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋“ค์„ ์šฐ๋ฆฌ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋Ÿฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ต์งธ๋กœ ์˜ฎ๊ธธ ๋•Œ, ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

์ด๋ฏธ์ง€๋ผ๋Š” ๊ฒƒ์€, ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํƒฌํ”Œ๋ฆฟ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ ํ™˜๊ฒฝ์„ ๋‹ค ๋งŒ๋“ค๊ณ , ์ด ํ™˜๊ฒฝ ์ „์ฒด๋ฅผ ํด๋ผ์šฐ๋“œ์— ์˜ฌ๋ฆฌ๊ณ  ๋ฐ›๊ธฐ๋ณด๋‹จ,

์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์šด์˜์ฒด์ œ, ์‹คํ–‰ํ™˜๊ฒฝ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์ข…์†์„ฑ ๋“ฑ์„ ์•Œ๋ ค์ฃผ๋Š” ์„ค๋ช…์„œ์ธ ๊ฒƒ์ด๋‹ค.

ํ•ด๋‹น ์„ค๋ช…์„œ๋ฅผ ํด๋ผ์šฐ๋“œ์— ์˜ฌ๋ฆฌ๊ณ  ๋ฐ›๊ธฐ๋ฅผ ํ†ตํ•ด์„œ, ์šฐ๋ฆฌ๋Š” ๋” ๊ฐ€๋ณ๊ฒŒ ๊ณต์œ ๋ฅผ ํ•˜๊ณ , ๊ณต์œ ๋ฐ›์•˜์„ ๋•Œ ์„ค๋ช…์„œ๋Œ€๋กœ ๋„์ปค๊ฐ€ ๋š๋”ฑ๋š๋”ฑํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ณ 

๋งŒ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ docker run์„ ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ดํ•ดํ–ˆ๋‹ค.

์ง„ํ–‰์‹œ์ผœ!

๋„์ปค ์„ค์น˜๋ฒ•์€ ์—ฌ๊ธฐ๋ฅผ ๋ณด์ž.

์—ฌ๊ธฐ ๊ฐ€๋ณด๋‹ˆ ์„ค๋ช…์ด ํ•˜๋‚˜์”ฉ ์žˆ์—ˆ๋‹ค.

์„ค๋ช…๋Œ€๋กœ ๋„์ปค๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค.

๋‚ด ์ปดํ“จํ„ฐ์—๋„ ๋„์ปค๋ฅผ ์„ค์น˜ํ•ด์คฌ๋‹ค. (ubuntu, mac, window๋“ฑ์„ ์ฐพ์•„์„œ ์ง์ ‘ํ•˜์ž!!!)

์ดํ›„์— ์—…๋กœ๋“œํ•  ์„œ๋ฒ„์™€, ๋‚ด ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— ๋ชจ๋‘ docker login์„ ํ•ด์ฃผ์ž. (๊ฐ™์€ ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•œ๋‹ค)

์ดํ›„ sudo su ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋™์ž‘๋“ค์„ ์‹คํ–‰์‹œํ‚ค๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค.

์ดํ›„, docker ์—์„œ ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•ด๋ณด์ž!!!

docker login -u ${username}

์˜ ๋ฐฉ์‹์œผ๋กœ ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ , ์ด ๋•Œ ์•„๋ž˜์— password๋ฅผ ๋“ฑ๋ก์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

์ž…๋ ฅํ•ด์ฃผ๋ฉด? Login Succeeded๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฆ‰, ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋œป์ด๋‹ค

(๋งŒ์•ฝ ์‹คํŒจํ–ˆ๋‹ค๋ฉด sudo๋กœ ๋‹ค์‹œํ•˜๊ฑฐ๋‚˜, ๋‹ค์‹œ ์„ค์น˜ํ•ด๋ณด์ž!)

์„œ๋ฒ„์™€ ์—…๋กœ๋“œํ•  ์ปดํ“จํ„ฐ์—์„œ ๋กœ๊ทธ์ธ์ด ๋๋‚ฌ๋‹ค๋ฉด, ์ด์ œ ํ•ด์•ผํ•  ๊ณผ์ •๋“ค์ด ์žˆ๋‹ค.

sudo docker build -t ${username}/${repository name}:${tag} --platform linux/amd64 .
// ๋กœ์ปฌ : ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

sudo docker push ${username}/${{repository name}:${tag}
// ๋กœ์ปฌ : ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ด๋ฏธ์ง€๋กœ ์—…๋กœ๋“œ(push) ํ•œ๋‹ค.

sudo docker pull ${username}/${repository name}:${tag}
// ์„œ๋ฒ„ : ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ(pull) ํ•œ๋‹ค.

docker run -d -p 80:8080 -e TZ=Asia/Seoul --name ${name} ${username}/${repository name}:${tag}
// ์„œ๋ฒ„ : ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค.

๊ฐ์ž์˜ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด,

  • sudo docker build -t ${username}/${repo name}:${tag} --platform linux/arm64 .
    • -t : ์ •ํ™•ํ•œ ํƒœ๊ทธ๊นŒ์ง€ ๋ช…์‹œํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
    • --platform : ์‹คํ–‰์‹œํ‚ฌ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”Œ๋žซํผ์„ ๋ช…์‹œํ•ด์ค€๋‹ค. linux ํ”„๋ฆฌํ‹ฐ์–ด์— ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ amd64/v3๋ผ์„œ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค.
    • . : ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ช…์‹œํ–ˆ๋‹ค. - sudo docker push ${username}/${repo name}:${tag}
    • ํ•ด๋‹น ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ด๋ฏธ์ง€๋ฅผ docker hub์œผ๋กœ ํ‘ธ์‰ฌํ•œ๋‹ค.
    • ๊นƒํ—ˆ๋ธŒ์— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ํ‘ธ์‰ฌํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค
    • ํ•˜์ง€๋งŒ, ๋„์ปค๋Š” ์ด๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋…์ž์ ์ธ ํ™˜๊ฒฝ์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋‘”๋‹ค๋ฉด, ๊นƒํ—ˆ๋ธŒ๋Š” ํ”„๋กœ์ ํŠธ๋งŒ์„ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • sudo docker pull ${username}/${repository name}:${tag}
    • ํ•ด๋‹น ์ด๋ฆ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค. - docker run -d -p 80:8080 -e TZ=Asia/Seoul --name ${name} ${username}/${repository name}:${tag}
    • -d : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค.
    • -p 80:8080 : ํฌํŠธ๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค. 80ํฌํŠธ๋กœ ์™ธ๋ถ€ ์ž…๋ ฅ์„ ๋ฐ›์œผ๋ฉด, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” 8080ํฌํŠธ์— ์‹คํ–‰์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.
    • -e TZ=Asia/Seoul : ํ™˜๊ฒฝ ์„ค์ •์„ ํ•ด์ค€๋‹ค. ํƒ€์ž„์กด์„ ์„œ์šธ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.
    • --name ${name} : ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•ด๋‹น ์ด๋ฆ„์œผ๋กœ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค. ํ›„์— ์ •ํ™•ํ•œ ์ด๋ฏธ์ง€๋ช…์ด ์•„๋‹Œ, ํ•ด๋‹น name์ด๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ๋Š” id๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
    • ์ด๋ ‡๊ฒŒ ์„ค์ •๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

์›๊ฒฉ ์„œ๋ฒ„์—์„œ pull์„ ํ•  ๋•Œ, ๊ทธ๋ฆฌ๊ณ  Push๋ฅผ ํ•  ๋•Œ tag๊ฐ€ ๋ช…์‹œ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด,

๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด defaultํƒœ๊ทธ๋กœ latest๋กœ ๋ฐ›์•„์ง„๋‹ค.

์ดํ›„์— ์‹คํ–‰์„ ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ๋‹ค.

docker run -d -p 80:8080 -e TZ=Asia/Seoul --name server teamndd/test

์ด ๋ช…๋ น์„ ๋‚ด๋ ค์ฃผ๋ฉด, ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆํ™”์‹œ์ผœ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

๋„์ปค์— ๋Œ€ํ•œ ๋” ๊นŠ์€ ์ด์•ผ๊ธฐ๋“ค์€ ํ˜„์žฌ ๋‚˜๋„ docker ๊ณต์‹๋ฌธ์„œ์—์„œ ํ›‘๋Š” ์ค‘์ด๋‹ค.

์šฐ๋ฆฌ ๋ชจ๋‘ ๋‹ค๊ฐ™์ด ๊ณต๋ถ€ํ•ฉ์‹œ๋‹ค

๊ทธ๋Ÿผ...twenty thousand...๐Ÿ”ฅ

ยฉ 2024 Adultlee. All rights reserved.Made with โค by ์ด์„ฑ์ธ