MapleStory Finger Point

โšช DevOps/๐Ÿ”ต Docker 7

[Docker] Compose

๋ชฉ์ฐจ    ๐Ÿ”Compose  ๋ž€? ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์ •์˜ํ•˜๊ณ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํˆด ์—ฌ๋Ÿฌ๊ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ์— ๋„์›€์คŒ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์‹œํ‚ค๋˜ ๊ฑธ ๊ฐ„์†Œํ™” ์‹œํ‚จ๋‹ค. Compose ์ƒ์„ฑ    โœ…ํŒŒ์ผ๋ช…์€ `compose.yml` ์œผ๋กœ ์ƒ์„ฑ    โœ…  ` docker run --name webserver -d -p 80:80 nginx `ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์•„๋ž˜ yml ํŒŒ์ผ๋กœ ์ž‘์„ฑ ํ•œ ๊ฒƒ yml ์€ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ๊ณ„์ธต์„ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜  Compose ์‹คํ–‰  โœ…` docker compose up ` ์„ ํ•˜๋ฉด nginx ๊ฐ€ ์‹คํ–‰๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅ!ํฌ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰์ด๊ธฐ ๋•Œ๋ฌธ์— (์ž‘์—…๋ถˆ๊ฐ€ ctrl + c ํƒˆ์ถœ)   โœ… ` docker compose up ` ..

[Docker] Docker ์—์„œ Spring Boot + MySQL ํ”„๋กœ์ ํŠธ ์‹คํ–‰ (+ Compose ์‚ฌ์šฉ)

๋ชฉ์ฐจ    Spring Boot ํ”„๋กœ์ ํŠธ Docker์—์„œ ์‹คํ–‰์‹œํ‚ค๊ธฐ  โœ… SpringBoot ํ”„๋กœ์ ํŠธ๋ฅผ ์ค€๋น„ํ•ด์ค€๋‹ค.      โœ… ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ Docker ๋กœ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š”  ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋ฒ• > Dockerfile ์ƒ์„ฑํ•˜๊ธฐ์ƒ์„ฑํ•˜๊ธฐ์ „์— ๊ผญ! `./gradlew clean build ` ๋ช…๋ น์–ด๋กœ ๋นŒ๋“œ       โœ… Dockerfile ์ƒ์„ฑ `FROM openjdk:17-jdk` ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋Š” ์Šคํ”„๋งํ”„๋กœ์ ํŠธ์ด๋ฏ€๋กœ jdk ์œผ๋กœ ์„ธํŒ… COPY ๋นŒ๋“œํ•œ ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ณต์‚ฌ ํ›„ ์ปจํ…Œ์ด๋„ˆ์—์„œ jar ์‹คํ–‰  app.jar ์€ ์ƒ๋Œ€๊ฒฝ๋กœ์ธ ์ƒํƒœ /app.jar ์€ ์ ˆ๋Œ€๊ฒฝ๋กœ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ์—๋Š” jar ํŒŒ์ผ์„ jdk ๋กœ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ๋ช…๋ น์–ด ์ž…๋ ฅ  ์šฐ๋ฆฌ๋Š” ์ฆ‰, build ํŒŒ์ผ์„  ..

[Docker] Dockerfile (๋„์ปคํŒŒ์ผ)

๋ชฉ์ฐจ     ๐Ÿ”Ž Dockerfile ์ด๋ž€DockerHub ์— ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ์ด๋ฏธ์ง€๋“ค๋„ Dockerfile ์„ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ์ž„์ฆ‰, ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ฒŒ ํ•ด์ฃผ๋Š” ํŒŒ์ผ์ž„   FROM :: ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์ƒ์„ฑ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•จ  (ํŠน์ • ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€์ ์ธ ์„ธํŒ…์„ ํ•  ์ˆ˜ ์žˆ์Œ)๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€ ์„ธํŒ…์„ ํ•˜๋Š” ๊ฒƒ.ํ•„์š”์— ๋”ฐ๋ผ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ๊ณจ๋ผ์ฃผ๋ฉด ๋จ  โœ…  FROM ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์ƒ์„ฑ `Dockerfile` ๋กœ ํŒŒ์ผ ์ƒ์„ฑ  `FROM [์ด๋ฏธ์ง€๋ช…]``FROM [์ด๋ฏธ์ง€๋ช…] : [ํƒœ๊ทธ๋ช…]`ํƒœ๊ทธ๋ช… ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ตœ์‹ ๋ฒ„์ „ ์‚ฌ์šฉ  `FROM openjdk:17-jdk` ๋ฒ ์ด์Šค๋กœ ์ƒ์„ฑํ•      โœ… ์ด๋ฏธ์ง€ ์ƒ์„ฑ  `-t [์ด๋ฏธ์ง€๋ช…] [๋„์ปคํŒŒ์ผ์œ„์น˜๊ฒฝ๋กœ] `์ด๋ฏธ์ง€ ๋ช…์„ ์–ด๋–ป๊ฒŒ ํ• ๊ฑด์ง€ ์ƒ..

[Docker] Docker Volume (๋„์ปค ๋ณผ๋ฅจ)

๋ชฉ์ฐจ  ๐Ÿ”Ž Docker Volume ์€ ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? Docker ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋„์šธ ์ˆ˜ ์žˆ์ŒํŠน์ • ํ”„๋กœ๊ทธ๋žจ์— ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ๋ฌด์กฐ๊ฑด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š”๋ฐ (์ด ๋ฐฉ์‹์ด ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ) ํ•˜์ง€๋งŒ,์ƒˆ๋กœ์šด ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ต์ฒด์‹œ MySQL ์ปจํ…Œ์ด๋„ˆ์˜€๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๋ถ€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ์— ๋ณผ๋ฅจ Volume ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค.     ๐Ÿ”Ž  Docker Volume ์ด๋ž€ ๋ญ˜๊นŒ?  ์ปจํ…Œ์ด๋„ˆ ์ž์ฒด์˜ ๊ณต๊ฐ„์„ ์‚ฌ์šฉ X , ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•จ `docker run -v [ํ˜ธ์ŠคํŠธ๋””ํ…ํ† ๋ฆฌ์ ˆ๋Œ€๊ฒฝ๋กœ]:[์ปจํ…Œ์ด๋„ˆ๋””๋ ‰ํ† ๋ฆฌ์ ˆ๋Œ€๊ฒฝ๋กœ] ์ด๋ฏธ์ง€๋ช… [:ํƒœ๊ทธ๋ช…]` โญhost ์— ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด -> ํ˜ธ์ŠคํŠธ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€  ์ปจ..

[Docker] Docker CLI - Container

๋ชฉ์ฐจ     ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹คํ–‰  โœ…  clear ํ„ฐ๋ฏธ๋„ ๋‚ด์šฉ ์ง€์šฐ๊ธฐ  โœ…  nginx ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ์‹œ ์ด๋ฏธ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ์ž๋™์œผ๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.  โœ… ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ ํ™•์ธ   โœ… ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ `docker start`  ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ + ์‹คํ–‰ ํ•œ๋ฒˆ์— ํ•˜๊ธฐ โœ… ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ์‹œ์ž‘์„ ํ•œ๋ฒˆ์— ํ•ด์คŒ ( ํฌ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰)`docker run ์ปจํ…Œ์ด๋„ˆ๋ช…` ctrl + c ๋กœ ํƒˆ์ถœ    โœ… ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ์‹œ์ž‘์„ ํ•œ๋ฒˆ์— ํ•ด์คŒ (๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰)   `docker run -d ์ปจํ…Œ์ด๋„ˆ๋ช…`    * ํฌ๊ทธ๋ผ์šด๋“œ (foreground)  : ๋‚ด๊ฐ€ ์‹คํ–‰์‹œํ‚จ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‚ด์šฉ์ด ํ™”๋ฉด์—์„œ ์‹คํ–‰๋˜๊ณ  ์ถœ๋ ฅ๋˜๋Š” ์ƒํƒœ= ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ญ๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€ ๋ณด์ด์ง€๋งŒ ๋‹ค๋ฅธ๊ฑธ ์กฐ์ž‘ ํ•  ์ˆ˜ ์—†์Œ * ๋ฐฑ๊ทธ..

[Docker] Docker CLI - Image

๋ชฉ์ฐจ    ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ (DockerHub) ๐Ÿ”Ž  Docker Image ์–ด๋””์„œ ๋‹ค์šด๋˜๋Š” ๊ฒƒ์ธ๊ฐ€ ? https://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more.hub.docker.com    ๐Ÿ”Ž DockerHub : Image ์ €์žฅ์†Œ ๊ฐœ๋…์ด๋‹ค.      ๐Ÿ”Ž  Tags ๋ช… : Image ์˜ ๋ฒ„..

[Docker] Docker(๋„์ปค) ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์„ค์น˜๋ฒ•

๋ชฉ์ฐจ     ๋„์ปค๋ฅผ ์™œ ์“ธ๊นŒ?์ด์‹์„ฑ ๋•Œ๋ฌธ์ž„  ํ”Œ๋žซํผ ๋ณ„๋กœ ๋‹ค์–‘ํ•œ ์š”์†Œ์— ์˜ํ•ด ์„ค์น˜๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ ๊ทผ๋ฐ ํ•ด๊ฒฐ๊ฐ€๋Šฅ !์„ค์น˜๊ณผ์ •์ผ๊ด€๋œ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ๊ฐ€๋Šฅ๋…๋ฆฝ์  ํ™˜๊ฒฝ (ํ”„๋กœ๊ทธ๋žจ ๋ผ๋ฆฌ ์ถฉ๋Œ X)  IP ์™€ Port IP : ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ํŠน์ • ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ`13.250.15.132` Port : ํ•œ ์ปดํ“จํ„ฐ ๋‚ด์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํŠน์ • ํ”„๋กœ๊ทธ๋žจ ์ฃผ์†Œ`13.250.15.132:3000` โœ… ํŠน์ • ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ†ต์‹ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” IP+Port ํ•จ๊ป˜ ์•Œ์•„์•ผํ•จ โœ…  ๋ธŒ๋ผ์šฐ์ € ์ฐฝ ๋’ค์— ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋ธŒ๋ผ์šฐ์ €๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 80๋ฒˆ ํฌํŠธ๋กœ ํ†ต์‹ ์„ ๋ณด๋‚ด๊ฒŒ ์„ค์ •๋จ (๋””ํดํŠธ)3000๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ช…์‹œํ•˜๋ฉด ๋จ :3000 โœ… ์ž˜์•Œ๋ ค์ง„ํฌํŠธ (well_known port)0~1023๋ฒˆ ํฌํŠธ๋Š” ์ด๋ฏธ ์ฃผ์š”ํ†ต..