docker

프로젝트 폴더 내부에 docker-compose.yml 파일을 저장한다. version: '2.2' services: my_web: container_name: my-web # 컨테이너 명 image: aspendigital/codeigniter:latest # 이미지 ports: # 포트 설정 - 80:80 volumes: # 볼륨 설정 - $PWD:/var/www/html docker-compose up 명령어로 다른곳에서도 같은 환경으로 설치할 수 있다. 참고 Docker 자습서 - 8부: Docker Compose 사용 Docker Compose를 설치하고 사용하는 방법을 설명합니다. docs.microsoft.com
· Spring
이 전 블로그 글에서 Spring Boot 프로젝트를 생성하고 Prometheus와 연동까지 해봤다. 이제 Grafana를 연동해 시각화를 해보자. Grafana 설치 및 사용 Grafana 역시 도커로 설치하겠다. docker run -d -p 3000:3000 --name grafana grafana/grafana 설치 후 컨테이너가 실행됫으면 http://localhost:3000에 접속해보면 grafana 홈페이지에 접속될 것 이다. 초기 로그인은 admin/admin으로 접속해 비밀번호를 바꾸면 된다. 이제 Data source를 추가해 Prometheus와 연동해보자 전 블로그 글에서 접속했던 http request들이 확인되면 정상적으로 연동이 된 것이다. 전체 코드는 아래 GitHub에서 ..
· Spring
Prometheus, Grafana에 대한 것은 이전 블로그글에서 확인하면 된다. Spring Boot Project 생성 및 설정 Spring Boot Project(Gradle)를 생성하고 build.gradle에 의존성을 주입해준다. dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-core' implementation 'io.micrometer:micrometer-registry-prometheus'..
· Spring
프로젝트 중 모니터링 시스템을 구현해보려고 한다. Prometheus + Grafana를 이용해 Spring Boot 애플리케이션을 모니터링 해 볼 것이다. 모니터링 시스템은 너무많은 종류가 있어서 본인이 사용하고 싶은것으로 사용해도 좋을듯하다. 추후에는 cAdviser도 연동해 컨테이너 모니터링까지 해볼 예정이다. 먼저 Prometheus, Grafana가 무엇인지 간단하게 알고 가자. Prometheus Prometheus는 SoundCloud사에서 만든 오픈소스 시스템 모니터링 및 경고 툴킷이다. 지금은 독립형 오픈소스 프로젝트이며 많은 회사들이 사용 하고 있고, 또한 kubernetes에서도 Prometheus를 사용하여 매트릭 수집 및 대시보드 구축하는 방식을 장려하고 있다. Jobs/expor..
이번엔 MacOS 환경에서 쿠버네티스를 설치해보겠다. Docker가 설치 안되신 분들은 Docker 홈페이지에 가서 다운로드 받아야 한다. Docker를 설치 후 로그인까지 한다. Homebrew 사용해서 쿠버네티스를 설치하려고 한다. 설치가 안되어 있으신분들은 Homebrew 홈페이지에 가서 설치법을 보고 설치하면 된다. brew install kubectl 또는 brew install kubernetes-cli를 실행해 kubectl을 설치한다. 설치한 버전이 맞는지 확인한다. kubectl cluster-info로 클러스터의 상태를 확인할 수 있다. The connection to the server was refused - did you specify the right host or port? 와..
컨트롤러에 의한 파드 실행 kubectl run에 옵션을 지정하면 파드를 디플로이먼트 컨트롤러의 제어하에 실행하는하려면 옵션 --restart=Always을 주면된다.(기본값 Always) 파드만 독립적으로 실행하고 싶을 때는 --restart=Never 옵션을 주면된다. 파드가 정지되었을 때 재기동 시킬 필요가 있는지에 따라 옵션을 정하면 되겠다. 디플로이먼트 컨트롤러에 의해 파드가 기동될때는 백그라운드로 실행되기 때문에 -it 옵션은 무시된다. kubectl run 서브 커맨드의 기능이 지나치게 방대해지는 것을 막기 위해 파드 자체를 만들때만 run을 사용하는 것이 추천되고 있다. 디플로이먼트를 먼들 때는 kubectl create deployment --image hello-world hello-w..
윈도우를 사용한다면 전 블로그글을 확인하고 실행 환경을 구축해야한다. 파드 실행 kubectl run 명령어를 입력하고 결과가 표시될 때까지의 흐름은 다음과 같으며 도커 명령어와 비슷하다. kubectl이 쿠버네티스에게 명령을 전달한다. 노드에 이미지가 없으면 원격 리포지터리(Docker Hub)에서 다운로드 한다. 노드의 containerd가 컨테이너를 실행한다. kubectl이 터미널에 메시지를 표시한다. 쿠버네티스의 특징 중 하나는 개인의 PC, 퍼플릭 클라우드, 온프레미스의 모든 환경에서 동인할 kubectl 명령어로 조작할 수 있다는 점이다. 따라서, 미니쿠베를 잘 익혀두면 5,000대 규모의 클러스터(버전 1.11 기준)도 다룰 수 있다. 파드는 쿠버네티스에서 컨테이너를 실행하는 최소 단위이다..
쿠버네티스를 윈도우 환경에서 하나하나 정리하며 설치해보겠다. MacOS 환경에서 설치는 블로그글에서 확인할 수 있다. 아래 블로그 글에서 도커 툴박스를 설치한다. [Docker] 윈도우에서 도커 설치하기 (툴박스 vs 데스크탑) 0. 왜 툴박스를 사용해야 할까? 도커 데스크탑 애플리케이션은 윈도우 professional, enterprise, education 버전에서 사용이 가능하다. 윈도우 홈 버전은 Hyper-V를 지원하지 않아서 도커 툴박스를 사용해야 jinyes-tistory.tistory.com Docker Quickstart Terminal을 실행하면 E_FAIL (0x80004005) 에러가 날 수 있는데 그럴땐 CMD를 관리자로 열어 bcdedit /set hypervisorlauncht..
퍼시스턴스 볼륨 API 구현 예시 컨테이너를 지워도 데이터를 잃지 않기 위해서는 퍼시스턴트 볼륨을 사용해야 한다. 앞에 작성한 환경 변수 API 구현 예시에서 만든 my_daemon을 수정해서 퍼시스턴스 볼륨 API 예시를 구현해보자 외부 저장소를 마운트한 디렉터리에 데이터를 쓰도록 바꾸었다. 다시 이미지를 생성하고 컨테이너를 실행해보자 호스트상에 퍼시스턴트 볼륨으로 마운트할 디렉터리를 만든다. -v 호스트절대경로:컨테이너내경로로 볼륨의 path를 설정한다. 다른 터미널에서 컨테이너를 중지하고 다시 재기동 한다. COUNT가 이어서 출력되는것을 확인할 수 있다. 그럼 아예 컨테이너를 삭제 후 다시 컨테이너를 실행해보겠다. 삭제 후 컨테이너를 다시 생성해 시작해도 COUNT가 이어서 출력되는것을 확인 할 ..
환경 변수 API 구현 예시 이번에는 d5라고 하는 디렉터리를 만들고 Dockerfile과 my_daemon이라고 하는 2개 파일을 바탕으로 컨테이너를 개발할 것이다. FROM을 사용해 베이스 이미지로 apline을 지정했다. RUN에서는 apk add bash로 bash 셸을 추가했다. ADD로는 셸 스크립트 my_daemon을 루트 경로에 배치하고 CMD로 컨테이너가 기동할 떄 실행하게 했다. my_daemon은 컨테이너가 기동되면 실행되는 셸 스크립트다. 보통 자바나 파이썬으로 작성한 코드를 컨테이너로 만드는 경우가 많은데 이번에는 간단한 예를 위해 셸 스크립트를 사용했다. 환경 변수 INTERVAL이 없는 경우에는 3초 단위로 현재 시간과 카운트를 표준 출력(STDOUT)에 출력한다. 환경 변수 ..
beekei
'docker' 태그의 글 목록 (3 Page)