Linux/Docker (12) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Jenkins] Pipeline์ผ๋ก ์น ๋ฐฐํฌํ๊ธฐ (Jenkinsfile) Pipeline์ผ๋ก ์น ๋ฐฐํฌํ๊ธฐ (Jenkinsfile) ๐ก ์ ํจ์ค์์ ์๋ก์ด ์์ดํ ์์ฑํ๊ธฐ โ โ ์๋ก์ด Item โ๏ธ ์ ํจ์ค์์ ์์ดํ ์ด๋? ์๋กญ๊ฒ ์ ์ํ ์์ ์ ๋งํ๋ค. ๋ชจ๋ ์์ ์ ์ ์์ ์์๋ฅผ ๋ชจ์๋ ์ ์ฒด ์์ ์ ํ๋ก์ ํธ๋ผ๊ณ ํ๋ฉฐ, ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ์์๋ Freestyle, Pipeline๋ฑ์ด ์๋ค. ์ด๋ ๊ฒ ํ๋ก์ ํธ๋ฅผ ์ ์ํ๊ณ ์์ฑํ๋ ๊ฒ์ ์์ดํ ์ด๋ผ๊ณ ํ๋ค. ๐ก Pipeline โ๏ธ Pipeline์ด๋? ์ ํจ์ค์์ ์ง์ํ๋ ๊ณ ์ ์ Pipeline ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด ์์ ์ ์ ์ํ๋ ํ๋ก์ ํธ์ด๋ค. ๊นํ๋ธ์ ๊ฐ์ ์ฝ๋ ์ ์ฅ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ฌ๋ฆด ๋ Pipeline ์ฝ๋๋ก ์์ฑํ ํ์ผ์ ํจ๊ป ์ฌ๋ ค๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ๋ฐฐํฌ๋ฅผ ํจ๊ป ๊ด๋ฆฌํ ์ ์์ด ๊ด๋ฆฌ ํธ๋ฆฌ์ฑ์ด ๋๋ค. Pipeli.. [Jenkins] CentOS8์์ Jenkins ์ฌ์ฉํ๊ธฐ CentOS8์์ Jenkins ์ฌ์ฉํ๊ธฐ ๐ก ํ์ดํ๋ผ์ธ์ด๋? ์ปจํ ์ด๋๋ก ๊ตฌ๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ณผ์ ๊นํ๋ธ ๋ฑ ์ ์ฅ์์ ์ ์ฅํด ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ค ์ฝ๋๋ฅผ ๋ด๋ ค๋ฐ์ ๋์ปค ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ก ๋น๋ ๋น๋ํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ ์์ฑ ์์ฑํ ์ค๋ธ์ ํธ๋ฅผ ์ธ๋ถ์์ ์ ์ํ ์ ์๋๋ก ์๋น์ค ํํ๋ก ๋ ธ์ถ ๋๋ถ๋ถ IT ์์ ์ ํ์ดํ๋ผ์ธ์ ํตํด ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ ๋ค. ๊ธฐ์กด์๋ ํ์ดํ๋ผ์ธ์ ์ฌ๋์ด ํ๋ํ๋ ์์์ ์ผ๋ก ์งํํ์ง๋ง, ์ด์ ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ์๋ํํ ์ ์๋ค. ๐ก CI/CD ์๋ํ๋ ํฌ๊ฒ ์ง์์ ํตํฉ(CI), ์ง์์ ๋ฐฐํฌ(CD) ๋ ๊ฐ์ง๋ก ์ ์ CI/CD๋ ์ค๋ฌด์ ์ธ ํ๊ฒฝ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ณ์ ์ถ์ ํด ์ข ๋ ์์ .. [Docker] Docker swarm์ผ๋ก ์๋น์ค ๋ฐฐํฌํ๊ธฐ Docker swarm์ผ๋ก ์๋น์ค ๋ฐฐํฌํ๊ธฐ ๐ ์๋น์ค ์์ฑํ๊ธฐ docker service create \ --name testservice \ --constraint node.role==worker \ --replicas 2 \ -p 8001:80 \ nginx โ๏ธ docker service create : ๋์ปค ์ค์์์ ์๋น์ค๋ฅผ ์์ฑ. โ๏ธ --name testservice : ์๋น์ค์ ์ด๋ฆ์ ์ง์ . โ๏ธ --constraint node.role==worker : ์ ์ฝ ์กฐ๊ฑด์ผ๋ก worker๋ ธ๋์์๋ง ๋์ํ๋๋ก. โ๏ธ --replicas 2 : ์๋น์ค์ ๋ณต์ ๋ณธ์ 2๊ฐ ์์ฑ. โ๏ธ -p 8001:80 : ํธ์คํธ์ 8001 ํฌํธ์ ์๋น์ค ๋ด๋ถ์ 80 ํฌํธ์ ๋งคํ. โ๏ธ nginx : ๋ฐฐํฌํ ์๋น์ค์ ์ด๋ฏธ์ง.. [Docker] Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ Docker Swarm์ผ๋ก ํด๋ฌ์คํฐ ๊ตฌ์ฑํ๊ธฐ ๐ Docker swarm mode ๋ฌผ๋ฆฌ์ ์๋ฒ ํด๋ฌ์คํฐ๋ฅผ ํตํด ์ปจํ ์ด๋๋ฅผ ํ์ฅํ๊ธฐ ์ํ ๋์ปค ๊ณ ์ ์ ํ๋ซํผ. ์ฌ๋ฌ ์๋ฒ์ ๊ฑธ๋ ค ๊ฐ๋จํ ๋ถ์ฐ ์ํฌ๋ก๋๋ฅผ ๊ตฌํํ ์ ์๋ค. ๋์ผํ ์ปจํ ์ด๋๋ฅผ ๊ณต์ ํ๋ ์ฌ๋ฌ ํด๋ฌ์คํฐ ๋ด์ ๋ ธ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ์คํํ ์ ์๋๋ก ํ๋ ๋์ปค ์์ฒด ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ. โ๏ธ manager ๋ ธ๋ (control, master node) ํด๋ฌ์คํฐ ์ ์ฒด๋ฅผ ์ค์ผ์คํธ๋ ์ด์ . ๋คํธ์ํฌ๋ ๋ณผ๋ฅจ, ์ปจํ ์ด๋ ๋ฑ. ๋ง์ฝ, manage๊ฐ ํ ๋์ธ ๊ฒฝ์ฐ ํด๋น ๋ ธ๋๊ฐ down๋๋ฉด ์ ์ฒด ๊ด๋ฆฌ๋ ๋ถ๊ฐ๋ฅํ๋ค. ์ต์ํ ๋ ๋ ์ด์์ manage ๋ฐฐ์น๊ฐ ํ์. ๋ฐฉ๋ฒ 1. original manager (์ต์ด ํ ํฐ์ ๋ฐํํ ๋ ธ๋) ํ ํฐ์ ๋ฐํํ๋ฉด wo.. [Docker] Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ Attachable Overlay Network์ ํ์ฉํ ๋์ปค ์คํ ์คํ ๐ Docker Stack์ด๋? ๋์ปค์ ์๋น์ค ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์๋น์ค๋ฅผ ํจ๊ป ์ ์ํ๊ณ ์คํํ๋ ๋๊ตฌ. ์ฃผ๋ก ์ฌ๋ฌ ์๋น์ค๋ฅผ ํตํฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ , ์ด๋ฅผ ๋์์ ์คํํ๊ณ ๊ด๋ฆฌํ๋ค. yml ํ์ผ์ ์ ์๋ ์๋น์ค, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ์ฌ์ฉํด ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌํ๋ค. ๐ ๋คํธ์ํฌ ์์ฑํ๊ธฐ ์๋น์ค๋ค ๊ฐ์ ํต์ ์ ์ ์ํ๊ธฐ ์ํ myweb ๋คํธ์ํฌ ์์ฑ docker network create --driver overlay --attachable myweb overlay ๋๋ผ์ด๋ฒ๋ ์ฌ๋ฌ ํธ์คํธ์ ๊ฑธ์ณ ๋์ปค ์ปจํ ์ด๋ ๊ฐ ํต์ ํ ์ ์๋ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ ๊ณตํ๋ค. --attachable ์ต์ ์ ์์ฑ๋ ๋คํธ์ํฌ์ ์ผ๋ฐ์ .. [Docker] Dockerfile ๋ช ๋ น์ด Dockerfile ๋ช ๋ น์ด ๐ Dockerfile์ด๋? ์๋ก์ด ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๋๋ ๋จผ์ ๊ธฐ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ง์ ํด์ผ ํ๋ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ๋ํด์ ์ถ๊ฐํ ๋ชจ๋ ์ค์ ๋ค์ Dockerfile์ด๋ผ๋ DSL ํ์ผ์ ์์ฑํ์ฌ ๋น๋ํ๋ค. ํจ์จ์ ์ธ Dockerfile ์์ฑ์ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ ์๊ฐ, ์ด๋ฏธ์ง ํฌ๊ธฐ, ์ฌ์ฌ์ฉ์ฑ, ๋ณด์, ์ ์ง๋ณด์์ฑ ๋ฑ์ ๊ณ ๋ คํด์ผ ํ๋ค. ๐ ๊ณ ๋ ค์ฌํญ โ ๊ฒฝ๋์ ์ปจํ ์ด๋ ์๋น์ค ์ ๊ณต ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ํ์ํ ํ๋ก๊ทธ๋จ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์คํ ํ์ผ์ ํฌํจ์ํฌ ๋, ๋ณต์ก์ฑ๊ณผ ์์กด์ฑ์ ๋ฌธ์ ๋ฅผ ํผํ๊ณ ๋น ๋ฅธ ์ปจํ ์ด๋ ๋ฐฐํฌ๋ฅผ ๋ชฉ์ ์ผ๋ก. โ Dockerfile์ ๋ด๊ธฐ๋ ๋ ์ด์ด ์ต์ํ ๋ ์ด์ด ์๊ฐ ๋ง์์๋ก ์ด๋ฏธ์ง ์์ฑ ๋น๋ ์๊ฐ์ ๊ธธ์ด์ง๊ณ , ์ฉ๋๋ ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋ ์ด์ด ์๋ฅผ ์ค์ฌ์ผ ํ๋ค. โ ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ .. [Docker] Dockerfile๋ก XpressEngine ๊ตฌ์ถํ๊ธฐ Dockerfile๋ก XpressEngine ๊ตฌ์ถํ๊ธฐ ๐ XpressEngine์ด๋? ํ๊ตญ์์ ๊ฐ๋ฐ๋ ์คํ ์์ค ์ฝํ ์ธ ๊ด๋ฆฌ ์์คํ ์ผ๋ก, ์น ์ฌ์ดํธ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ถํ๊ณ ์ด์ํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ซํผ์ด๋ค. ๐ ๋๋ ํ ๋ฆฌ ์์ฑ mkdir xpress_maker; cd xpress_maker ๐ Dockerfile ์์ฑ vi Dockerfile # ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ก CentOS 7 ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉ, ์ด ์ด๋ฏธ์ง ์์ ๊ตฌ์ถ. FROM centos:7 # yum ํจํค์ง ๊ด๋ฆฌ์์ ์บ์๋ฅผ ์ ๋ฆฌ. ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ๋ถํ์ํ ์บ์๋ฅผ ์ ๊ฑฐ. RUN yum clean all # ์ด๋ฏธ์ง์ ์ค์น๋ ๋ชจ๋ ํจํค์ง ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธ RUN yum update -y # wget, git, httpd๋ฅผ ์ค์น RUN yum -y in.. [Docker] Private Docker Registry๋ก ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ Private Docker Registry๋ก ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ ๐ Docker Registry๋? Docker ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์ค์ ์ง์คํ ์๋ฒ ์์คํ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ์ฌ๋ฌ ํ๊ฒฝ์์ ๋ฐฐํฌํ๊ธฐ ์ํ ๋ชฉ์ - ์ข ๋ฅ โ ๊ณต์ Docker Registry (๋์ปค ํ๋ธ) ๋์ปค ํ๋ธ๋ Docker ๊ณต์ ์ด๋ฏธ์ง ์ ์ฅ์๋ก์, ๊ฐ๋ฐ์๋ค์ด ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํ๊ณ ๊ฐ์ ธ๋ค ์ฌ์ฉํ ์ ์๋ ์ค์ ์ง์คํ ๋ ์ง์คํธ๋ฆฌ. (๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๋ ๋ฒ) https://thisisyoon.tistory.com/42 [Docker] ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๐ ๋์ปค ํ๋ธ์ ์ ์ฅ์ ์์ฑ https://hub.docker.com/ Docker Hub Container I.. [Docker] ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๋์ปค ํ๋ธ์ ์ด๋ฏธ์ง ์ ๋ก๋ํ๊ธฐ ๐ ๋์ปค ํ๋ธ์ ์ ์ฅ์ ์์ฑ https://hub.docker.com/ Docker Hub Container Image Library | App Containerization Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your team's container applications. Create your account Signing up for Docker is fast and free. Continue with GoogleContinue with GitHubContinue wi hub.docker.com ๐ Dockerfil.. [Docker] ๋์ปค ์ปจํ ์ด๋ & ์ด๋ฏธ์ง ๋ช ๋ น์ด ๋์ปค ์ปจํ ์ด๋ & ์ด๋ฏธ์ง ๋ช ๋ น์ด ๐ ์ปจํ ์ด๋ ํ์ธ docker container ls --all docker ps --all ๐ ์ด๋ฏธ์ง ํ์ธ docker image ls docker images ๐ ngnix ์ปจํ ์ด๋ ์์ฑ ํ ์์ docker container run -d -p 8003:80 nginx ๐ ์ปจํ ์ด๋ ์ญ์ docker container rm -f [์ปจํ ์ด๋ ID] ์ปจํ ์ด๋ ID๋ docker container ls --all ๋ก ํ์ธ ๊ฐ๋ฅ ๐ ๋ชจ๋ ์ปจํ ์ด๋ ํ ๋ฒ์ ์ญ์ docker container rm -f $(docker container ls -aq) -f : ๋์ ์ค์ธ ์ปจํ ์ด๋๊น์ง ๐ ๋ช ๋ น์ด๋ก ์ปจํ ์ด๋ ํ ๋ฒ์ ์ญ์ vi ctndel #!/bin/bash docker contai.. ์ด์ 1 2 ๋ค์