[Docker] Docker swarm ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

[Docker] Docker swarm ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

Docker swarm docker swarm์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ„ํ•œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ฐ ์Šค์ผ€์ค„๋ง ๋„๊ตฌ์ด๋‹ค. Docker๋Š” ๋‹จ์ผ ํ˜ธ์ŠคํŠธ, Docker swarm์€ ๋‹ค์ค‘ ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค. "์ปจํ…Œ์ด๋„ˆํ™” ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ž๋™ํ™”๋œ ๊ด€๋ฆฌ ๋ฐ ์ œ์–ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„๊ตฌ" swarm mode๋ฅผ ์ดˆ๊ธฐํ™”(init)ํ•˜์—ฌ ์‚ฌ์šฉ ์ฃผ์š” ๊ธฐ๋Šฅ DNS ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ฐ€๋Šฅ ์„œ๋น„์Šค์šฉ ํฌํŠธ๋ฅผ ์™ธ๋ถ€ Load Balancer์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ตฌํ˜„ ๊ฐ ๋…ธ๋“œ๋Š” TLS(Transport Layer Security) ์ƒํ˜ธ ์ธ์ฆ ๋ฐ ์•”ํ˜ธํ™”๋ฅผ ํ†ตํ•ด ๋…ธ๋“œ ๊ฐ„ ํ†ต์‹ ์— ๋Œ€ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„ Docker์—”์ง„๊ณผ ํ†ตํ•ฉ๋œ multi host๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ Cluster ์šด์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ฉ€ํ‹ฐ ํ˜ธ์Šค..

  • textsms
[Docker] Docker compose ๊ฐœ๋…, ๋ฌธ๋ฒ•, ์˜ˆ์ œ

[Docker] Docker compose ๊ฐœ๋…, ๋ฌธ๋ฒ•, ์˜ˆ์ œ

Docker Compose ๋ž€? ์‘์ง‘๋ ฅ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ๋กœ์ปฌ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋„๊ตฌ docker compose yaml์ฝ”๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ docker run ์‹คํ–‰๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ๋„คํŠธ์›Œํฌ, ๋ณผ๋ฅจ ๋“ฑ์„ ํ•œ๋ฒˆ์— ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. docker compose๋กœ ์ƒ์„ฑ๋œ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ ๋…๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌ์„ฑ๋˜๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹ ์ด ์‰ฝ๋‹ค. Docker file ์ž‘์„ฑ -> docker-compose.yml ์ž‘์„ฑ -> docker compose up ์žฅ์  ์„œ๋กœ ๋‹ค๋ฅธ OSํ™˜๊ฒฝ์ด๋ผ๋„ ๋™์ผํ•œ ํ™˜๊ฒฝ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœํ™˜๊ฒฝ์— ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ํŒ€๊ฐ„ ์†Œํ†ต์ด ์‰ฝ๋‹ค. ๋ณต์žกํ•œ ํ™˜๊ฒฝ๋„ YAML ์ฝ”๋“œ๋กœ ์Šคํฌ๋ฆฝํŠธํ™” ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ..

  • textsms
[Docker] Dockerfile(IaC) ๊ฐœ๋… ๋ฐ ๋ช…๋ น์–ด, Dockerfile ์ตœ์ ํ™”

[Docker] Dockerfile(IaC) ๊ฐœ๋… ๋ฐ ๋ช…๋ น์–ด, Dockerfile ์ตœ์ ํ™”

IaC (Infrastructure as Code, ์ฝ”๋“œํ˜• ์ธํ”„๋ผ)๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์ปค๋งจ๋“œ ๊ธฐ๋ฐ˜์˜ ์ธํ”„๋ผ ๊ตฌ์„ฑ ์‹œ ์‚ฌ์šฉ์ž ์‹ค์ˆ˜ ๋“ฑ์˜ ์ธ์  ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ. ์„ค์น˜ ์ˆœ์„œ์™€ ์ƒํ˜ธ ์—ฐ๊ด€์„ฑ ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ์ข… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ•จ๊ป˜ ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋“ค์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ฝ”๋“œํ˜• ์ธํ”„๋ผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ. ์ˆ˜์ •์‚ฌํ•ญ์€ ์–ธ์ œ๋“  ์ฝ”๋“œ ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ์—…๋ฌด ๋ชฉ์ ์„ ์ด๋ฃจ๋Š” ๊ฒƒ์—๋งŒ ์˜จ์ „ํžˆ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค. IaC๋Š” ํƒ„๋ ฅ์„ฑ, ํ™•์žฅ์„ฑ, ๋ฐ˜๋ณต์„ฑ์„ ๋ถ€์—ฌํ•˜๊ฒŒ ๋˜์–ด ๋ˆˆ์†ก์ด ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๋ณด์œ ํ•œ ์„œ๋ฒ„(์ปจํ…Œ์ด๋„ˆ)๋ฅผ ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ๋Œ€๋ฅผ ์šด์˜, ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. ๋ˆˆ์†ก์ด ์„œ๋ฒ„: ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์€ ๋‹ค์–‘ํ•œ ์„œ๋ฒ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๊ฐœ๋ฐœ์„œ๋ฒ„, ํ…Œ์ŠคํŠธ์„œ๋ฒ„, ์šด์˜์„œ๋ฒ„ ๋“ฑ์ด ์žˆ๋Š”๋ฐ ์šด์˜์„ ํ•˜๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ๋‹ค. ์ด๋•Œ ๋˜‘๊ฐ™์€ setup..

  • textsms
[Docker] ๋„์ปค ๋ณผ๋ฅจ ์ดํ•ด์™€ Bind mount, docker volume ๋ฐฉ์‹์˜ ๋ณผ๋ฅจ ๊ธฐ๋ฒ• | MySQL volume ์—ฐ๊ฒฐ, Nginx volume ์—ฐ๊ฒฐ

[Docker] ๋„์ปค ๋ณผ๋ฅจ ์ดํ•ด์™€ Bind mount, docker volume ๋ฐฉ์‹์˜ ๋ณผ๋ฅจ ๊ธฐ๋ฒ• | MySQL volume ์—ฐ๊ฒฐ, Nginx volume ์—ฐ๊ฒฐ

Volume ๊ธฐ์ˆ  ์ดํ•ด Docker์—์„œ ์ œ๊ณตํ•˜๋Š” volume ๊ธฐ์ˆ ์€ ์ปจํ…Œ์ด๋„ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€, ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ญ์ œ๋˜์–ด๋„ volume์€ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์™€ ์—ฐ๊ด€๋˜์–ด ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ ์‹œ ์‚ญ์ œ๋˜์ง€๋งŒ, ์ด๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ volume ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋œ๋‹ค. Volume 3๊ฐ€์ง€ ๋ฐฉ์‹ 1. Bind Mount Bind mount ๊ธฐ๋ฒ•์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒŒ์ผ๋„ mount ๊ฐ€๋Šฅํ•˜๋‹ค. "ํ˜ธ์ŠคํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ˆ๋Œ€๊ฒฝ๋กœ" : "์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ๊ฒฝ๋กœ" ๋ฅผ ์ง์ ‘ mountํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์ง€์ •ํ•œ ํ˜ธ์ŠคํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ ˆ๋Œ€๊ฒฝ๋กœ๊ฐ€ ๊ธฐ์กด์— ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ผ๋ฉด ํ•ด๋‹น ํŒŒ์ผ์‹œ์Šคํ…œ์˜..

  • textsms