Project/์‹นํ‹”์›€

[์‹นํ‹”์›€] 11/2 ๊ฐœ๋ฐœ์ผ์ง€ ๋ฐฐํฌ : ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ / SSH ์— Docker, Docker Compose, NGINX ์„ค์น˜

ํ•œ33 2024. 11. 2. 23:14

๐ŸŒฑ IP ์™€ PORT ์˜ ๊ฐœ๋…

IP ๋Š” ์•„ํŒŒํŠธ ์ฃผ์†Œ, PORT ๋Š” ํ˜ธ์ˆ˜๋กœ ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

A ๋ผ๋Š” ์•„ํŒŒํŠธ์˜ 101ํ˜ธ, 102ํ˜ธ  ๋ผ๊ณ  ํ•˜๋ฉด ๋™์ผํ•œ ์•„ํŒŒํŠธ์—ฌ๋„ ๋‹ค๋ฅธ ๊ณต๊ฐ„์ด๋‹ค.

์•„ํŒŒํŠธ ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

EC2 ์ธ์Šคํ„ด์Šค PC ์— ์ ‘์†์„ ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„์•ผํ•˜๋Š” ์ฃผ์†Œ๊ฐ€ IP ์ด๋‹ค.


๐ŸŒฑ ํผ๋ธ”๋ฆญ IP ์ฃผ์†Œ, ํ”„๋ผ์ด๋น— IP ์ฃผ์†Œ

 

IP ์ฃผ์†Œ๋Š” ํผ๋ธ”๋ฆญ ์ฃผ์†Œ, ํ”„๋ผ์ด๋น— ์ฃผ์†Œ , DNS ๋ผ๊ณ  ์žˆ๋Š”๋ฐ

์™ธ๋ถ€์—์„œ ์ปดํ“จํ„ฐ๋กœ ์ฐพ์•„ ๋“ค์–ด๊ฐˆ ๋• ํผ๋ธ”๋ฆญ IP ์ฃผ์†Œ๋กœ๋งŒ ์ฐพ์•„์„œ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ 

ํ•œ ํšŒ์‚ฌ์— a, b ๋ผ๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋‹ค.

ํšŒ์‚ฌ ์•ˆ์—์„œ๋Š” ์„œ๋กœ a, b ๋ฅผ ์•Œ๊ณ ์žˆ์ง€๋งŒ ์™ธ๋ถ€์—์„œ๋Š” ์ด ์‚ฌ๋žŒ์˜ a ๋ผ๋Š” ์ด๋ฆ„, b ๋ผ๋Š” ์ด๋ฆ„์„ ๋ชฐ๋ผ์•ผํ•œ๋‹ค.

์™ธ๋ถ€์—์„œ ๋ˆ„๊ตฌ๋‚˜ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ a-1, b-1 ์ด๋ ‡๊ฒŒ ์ง€์–ด ๋†“๋Š”๋‹ค.

์ด๋ ‡๊ฒŒ ์ง€์–ด๋†“์€ a-1, b-1 ์ด๋ฆ„์ด ํ”„๋ผ์ด๋น— ๊ฐœ๋…์ด๋‹ค.

๋‚ด๋ถ€์—์„œ๋Š” ์„œ๋กœ ์ž์œ ๋กญ๊ฒŒ ์™”๋‹ค๊ฐ”๋‹ค ํ•  ์ˆ˜ ์žˆ๋‹ค.


๐ŸŒฑ ํƒ„๋ ฅ์  IP ์„ค์ •

ํผ๋ธ”๋ฆญ IP ์ฃผ์†Œ๋Š” ๋™์ ์ด๋‹ค.

์ธ์Šคํ„ด์Šค๋ฅผ ๊ป๋‹ค๊ฐ€ ํ‚ค๋ฉด ์ƒˆ๋กœ์šด IP ์ฃผ์†Œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ๋‹ค.

→ AWS ์ž…์žฅ์—์„œ๋„ ์ด ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณ„์† ์ค‘์ง€๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ IP ํ•˜๋‚˜๋ฅผ ๊ณ„์†ํ•ด์„œ ํ• ๋‹นํ•ด์ค„ ์ด์œ ๊ฐ€ ์—†๋‹ค.

 

๋งค๋ฒˆ ํผ๋ธ”๋ฆญ ip ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฑธ ํ™•์ธํ•ด์•ผํ•˜๋Š”๋ฐ, ์ด๋ฅผ ํƒ„๋ ฅ์  IP ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๋™์  IP ๋ฅผ ๊ณ ์ •๋œ IP ํ•˜๋‚˜ ๋ฐœ๊ธ‰๋ฐ›์•„์„œ ์ด ๊ณ ์ • IP ๋กœ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค.

๊ทธ๋Ÿผ ๋™์  IP ๊ฐ€ ๋ฐ”๋€Œ๋”๋ผ๋„ ๊ณ ์ •๋œ IP ๋กœ ์—ฐ๊ฒฐ๋˜๊ฒŒ๋” ๊ฐ€๋ฅดํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ •์ ์œผ๋กœ ๊ฐ™์€ IP ์ฃผ์†Œ๋กœ ํƒ€๊ฒŸํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 


๐ŸŒฑ ์ธ์Šคํ„ด์Šค SSH ์— ์ ‘๊ทผํ•˜๊ธฐ

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ ๋งŒ๋“  ํ‚คํŽ˜์–ด pem ํŒŒ์ผ์„  C:\Users\Daegyu Han\.ssh ํด๋” ์•ˆ์— ๋„ฃ์–ด์คฌ๋‹ค.

C:\deploy ํด๋” ์•ˆ์— .sh ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๊ณ  ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ด์คฌ๋‹ค.

 

์ด ํ…์ŠคํŠธ ํŒŒ์ผ์„ Git Bash ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค์Œ ๋Œ์–ด์„œ ๋†“์•„ ์‹คํ–‰์‹œํ‚ค๋ฉด ์ƒ์„ฑํ•œ ์ธ์Šคํ„ด์Šค์˜ ssh ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

* sudo 

super user  ๊ฐ€ ํ•˜๋‹ค. ๋ผ๋Š” ๋œป. ์ตœ๊ณ  ๊ด€๋ฆฌ์ž , ๋ฃจํŠธ ๊ณ„์ •์„ ์˜๋ฏธํ•œ๋‹ค.

sudo su ๋ฅผ ํ†ตํ•ด ubuntu ๊ฐ€ ์•„๋‹ˆ๋ผ @root ๋กœ ๋ฐ”๋€Œ๊ฒŒ ํ•˜์—ฌ sudo ๋ฅผ ์ƒ๋žตํ•œ๋‹ค.


๐ŸŒฑ ์ธ์Šคํ„ด์Šค์— Docker , Docker Compose ์„ค์น˜ํ•˜๊ธฐ

๋”๋ณด๊ธฐ

1. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํš๋“

 
sudo su
  • ์„ค๋ช…: ๊ด€๋ฆฌ์ž(superuser) ๊ถŒํ•œ์„ ์–ป๊ธฐ ์œ„ํ•ด sudo su ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์Œ ๋ช…๋ น์–ด๋“ค์ด root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

2. ์šฐ๋ถ„ํˆฌ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ

 
apt-get update
  • ์„ค๋ช…: ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ, ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ํŒจํ‚ค์ง€ ์ •๋ณด๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

3. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜

 
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  • ์„ค๋ช…: Docker ์„ค์น˜์— ํ•„์š”ํ•œ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ apt-transport-https, ca-certificates๋Š” HTTPS๋ฅผ ํ†ตํ•œ ์•ˆ์ „ํ•œ ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ์— ํ•„์š”ํ•˜๊ณ , curl์€ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ํˆด, gnupg-agent๋Š” GPG ํ‚ค ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ํˆด์ž…๋‹ˆ๋‹ค.

4. Docker์˜ ๊ณต์‹ GPG ํ‚ค ์ถ”๊ฐ€

 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • ์„ค๋ช…: Docker ํŒจํ‚ค์ง€์˜ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ GPG ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‚ค๋Š” Docker์˜ ๊ณต์‹ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

5. Docker ๊ณต์‹ ์ €์žฅ์†Œ ์ถ”๊ฐ€

 
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • ์„ค๋ช…: Docker์˜ ๊ณต์‹ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ๋ฅผ Ubuntu ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€ํ•˜์—ฌ, Docker๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. $(lsb_release -cs)๋Š” ํ˜„์žฌ ์šฐ๋ถ„ํˆฌ ๋ฒ„์ „์— ๋งž๋Š” ์ €์žฅ์†Œ URL์„ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

6. ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ

 
apt-get update
  • ์„ค๋ช…: ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ Docker ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ apt-get update๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

7. Docker ์„ค์น˜

 
apt-get install docker-ce docker-ce-cli containerd.io
  • ์„ค๋ช…: Docker์˜ ํ•ต์‹ฌ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    • docker-ce: Docker ์—”์ง„ (์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜).
    • docker-ce-cli: Docker ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค.
    • containerd.io: ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋Ÿฐํƒ€์ž„.

8. Docker Compose ์„ค์น˜

 
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • ์„ค๋ช…: Docker Compose๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ •์˜ํ•˜๊ณ , ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. curl์„ ์‚ฌ์šฉํ•ด ํŠน์ • ๋ฒ„์ „์˜ Docker Compose ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ , /usr/local/bin/ ๊ฒฝ๋กœ์— ์ €์žฅํ•˜์—ฌ ์‹œ์Šคํ…œ ์ „์—ญ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

9. Docker Compose ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ

 
chmod +x /usr/local/bin/docker-compose
  • ์„ค๋ช…: Docker Compose ์‹คํ–‰ ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์—ฌ, ๋ชจ๋“  ์‚ฌ์šฉ์ž๋“ค์ด ์ด ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์„œ๋ฒ„์—์„œ Docker ๋ฐ Docker Compose๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. Docker๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„, Docker Compose๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ํˆด์ž…๋‹ˆ๋‹ค.


docker -v

docker-compose -v  ๋กœ  docker ์™€ docker compose ์„ค์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดํ›„ Git Bash ์—์„œ Docker ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰

docker login


๐ŸŒฑ NGINX ์„ค์น˜

docker pull nginx

๋ฅผ ํ†ตํ•ด NGINX ์„ค์น˜ํ•œ๋‹ค.

 

docker container run --name nginxserver -d -p 80:80 nginx

๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งŒ๋“ค์–ด ์‹คํ–‰์‹œํ‚จ๋‹ค.

 

docker ps ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.