springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법
Docker 소개
docker는 오픈 소스 애플리케이션 컨테이너 엔진으로, 기존 가상 머신 기술에 비해 Docker 컨테이너 성능 오버헤드가 매우 낮아 개발자들에게도 널리 사랑받고 있습니다. Docker를 기반으로 하는 개발자가 많아지면서 Docker 이미지는 더욱 풍부해졌습니다. 앞으로는 이미지를 다운로드하여 다양한 기업 수준의 완벽한 솔루션을 바로 사용할 수 있습니다. 따라서 도커는 점점 더 중요해지고 있습니다.
이 기사의 목적
이 기사에서는 프로젝트 예제를 사용하여 Docker 외부 인터페이스를 통해 Docker 컨테이너를 관리하고 모니터링하는 방법을 소개합니다.
애플리케이션 시나리오:
Docker를 통해 서버 리소스 풀을 통합하고, 리소스를 할당하고, 요청에 따라 컨테이너를 생성하여 리소스 활용도를 극대화합니다. 동시에 각 비즈니스(컨테이너) 간의 격리가 보장됩니다. 그리고 프로젝트의 온라인 배포를 지원할 수 있습니다.
1. 인터페이스를 통해 docker tomcat 컨테이너를 생성하고 제한을 구성합니다.
2. war 패키지를 업로드하고 컨테이너에 배포합니다.
3. 모든 도커 컨테이너의 리소스 사용량을 동적으로 모니터링합니다.
코드는 docker-java 오픈소스 컴포넌트를 기반으로 작성되었으며, spring-boot 기반으로 기능 개발이 완료되었습니다. 인터페이스는 아래와 같습니다:
기본 환경
1, eclipse 2019-03
2, Windows용 docker. 학습과 단순화를 위해 Linux 환경을 사용하지 않으나 원리와 기본 명령어는 동일합니다.
관련 기술 및 지식 포인트:
maven, spring-boot; spring mvc, jquery ajax 및 업로드.
구현 원리
Docker는 docker를 관리할 수 있는 다양한 외부 인터페이스(예: Restfull API)를 제공합니다. docker-java 오픈 소스 구성 요소는 이 인터페이스를 기반으로 캡슐화되어 개발이 더 쉬워집니다. 물론 시중에는 직접 비교하고 학습할 수 있는 다른 패키지 구성 요소도 있습니다. 여기 오픈 소스 작성자에게 감사드립니다.
구현 과정 사전 준비
1. 윈도우 업그레이드
저희는 윈도우 환경을 사용하고 있기 때문에 작성자 본인의 컴퓨터에는 win10 홈버전이 미리 설치되어 있고, 윈도우용 도커는 상위 버전에서 실행해야 합니다. 수준의 운영 체제 , 가상화 기술을 사용하려면 Professional 버전으로 업그레이드해야 합니다.
업그레이드가 필요한 경우 업그레이드 과정은 비교적 간단합니다. 간략한 소개는 다음과 같습니다(이미 Professional 버전인 경우 건너뛸 수 있습니다).
제품 키를 변경하려면 클릭하고 Professional을 입력하세요. 버전 키를 입력하고 천천히 기다려 업그레이드하세요. 키는 온라인에서 직접 찾을 수 있으며 어쨌든 거기에 있습니다.
2. Windows용 Docker 설치
공식 웹사이트로 이동하여 다운로드한 후 다음 단계를 진행하세요. 설치 후 자동으로 시작되며, 시작 후 도구 모음에 docker 로고가 나타납니다.
설치가 성공한 후 몇 가지 명령을 입력하여 성공 여부를 테스트할 수 있습니다. 예: docker에 대한 기본 정보를 봅니다.
3. 도커 이미지 주소를 수정합니다.
기본 미러 주소가 느리기 때문에 Tomcat 미러의 길이는 500미터가 넘습니다. 네트워크가 좋지 않으면 다운로드가 매우 느려집니다. 다음과 같이 미러 주소를 NetEase의 미러 주소로 구성할 수 있습니다.
4. 원격 관리 시작
마지막 항목을 확인하세요. 여기서 tcp//xxx는 원격 연결 주소입니다.
시작한 후 브라우저에 주소를 입력하여 결과가 반환될 수 있는지 확인하세요.
(이 주소는 cmd에 docker indo를 입력하는 것과 동일합니다.) 반환되는 내용은 json 형식입니다:
1. Maven 프로젝트를 생성합니다.
과정이 간단해서 이 과정은 생략합니다. 전체 프로젝트의 코드 구조는 다음과 같습니다.
2. docker-java 및 spring boot의 maven 종속성을 구성합니다. 최종 pom 파일 내용은 다음과 같습니다
jar 패키지를 보면 docker-java의 맨 아래 레이어는 netty dependency를 사용해야 합니다.
3. spring 구성 파일 application.properties를 추가합니다.
jsp의 위치와 docker의 관리 주소를 구성합니다.
4. 메인 수업 소개:
1.스프링부트 스타트업 메인 수업.
물론 다른 컨테이너를 구성하거나 Maven의 부두 플러그인을 사용하여 시작할 수도 있습니다.
소스 코드 다운로드가 포함된 spring-boot 원리(spring-boot-starter 인스턴스 구현)를 참조할 수 있습니다.
이 클래스의 위치에 주의하세요. 배치하는 것이 가장 좋습니다. 루트 디렉터리에 있으므로 루트 디렉터리 아래에 있습니다. 모든 하위 디렉터리는 Spring에서 검색할 수 있습니다.
2.dockerclientoperaterserver(docker와 상호 작용하는 클래스)는 다음과 같습니다.
다음 메서드를 포함합니다.
initclient: 초기화 링크.
getdockerinfo: docker에 대한 기본 정보 가져오기
stat: 실시간 통계 정보
refreshcontainers: 모든 컨테이너에 대한 기본 정보를 가져와 캐시에 저장
createandstartrcontaineranddeployapp: 전달된 매개변수에 따라 컨테이너 생성 및 시작
stopcontainer: 컨테이너를 중지합니다.
closeclient: 링크를 닫습니다.
pushapptocotainer: tomcat에 war 패키지를 배포합니다. 코드 조각이 너무 깁니다. 몇 가지 주요 방법은 다음과 같습니다.
createcontainer(컨테이너 생성):
이 방법은 docker-java를 사용하여 컨테이너 생성, 할당량 할당, 포트 매핑 구성 등을 수행합니다.
pushapptocotainer: 프로젝트를 tomcat에 배포
stat, 모니터링 방법:이 부분을 모니터링하는 docker-java 방법은 실제로 지원되지만 반환된 결과에는 다양한 처리가 필요하기 때문에. 기회주의를 사용했습니다. java를 사용하여 cmd를 호출하여 실행(docker stats)하여 모니터링 결과를 얻습니다.
주요 메소드 소개:
addcontainer: 컨테이너 추가 및 war 패키지 업로드
위는 메인 코드에 대한 설명입니다.구체적인 코드 세부사항은 소스코드를 다운로드한 후 절차에 따라 확인하시기 바랍니다.
샘플 프로젝트이므로 코드는 vue 및 부트스트랩 프레임워크를 사용하지 않습니다. 나는 CSS와 JS를 직접 작성했습니다. 구체적인 효과는 다음과 같습니다. 1. 모니터링 및 관리 홈페이지
2. 컨테이너 추가;위 내용은 springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

SpringBoot 프로젝트의 데이터베이스 액세스 성능 문제 Multi-Data 소스 구성이 기사는 SpringBoot 프로젝트에서 멀티 데이터 소스 구성에 Atomikos를 사용하는 것을 목표로합니다 ...

Java 프로젝트를 실행 가능한 JAR 파일로 포장 할 때 NoclassDeffounderRor의 문제가 발생합니다. 많은 자바 개발자가 ...

프로그래밍 세계에서 Intellijidea Cracking의 분석 방법과 관련하여 Intellij ...

문제 소개 : 개선 된 비디오 품질은 비디오 처리의 중요한 부분입니다. 특히 저지방 비디오를 처리 할 때, Java 언어 사용 방법 및 ...

SpringBoot 응용 프로그램을 처리 할 때 종종 요청 매개 변수를 올바르게받는 방법에 대한 문제가 발생합니다. 특히 매개 변수 형식이 공통 JSON이 아닌 경우, 더 ...

Java 프로그래밍에서 Java에서 Concurrenthashmap을 선언 할 때 정적 추가의 영향, Consurenthashmap ...

사용자 정의 스레드 풀에서 초기화 () 메소드의 역할에 대한 자세한 설명 사용자 정의 스레드 풀을 구성 할 때 초기화 () 메소드가 있음을 알 수 있습니다. 매우...

곡선 통합의 가변 대체에 대한 질문 질문자는 곡선 통합 문제를 겪고 한 단계의 계산 결과가 혼동됩니다. 제목이 주어집니다 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
