찾다
Javajava지도 시간springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

Docker 소개

docker는 오픈 소스 애플리케이션 컨테이너 엔진으로, 기존 가상 머신 기술에 비해 Docker 컨테이너 성능 오버헤드가 매우 낮아 개발자들에게도 널리 사랑받고 있습니다. Docker를 기반으로 하는 개발자가 많아지면서 Docker 이미지는 더욱 풍부해졌습니다. 앞으로는 이미지를 다운로드하여 다양한 기업 수준의 완벽한 솔루션을 바로 사용할 수 있습니다. 따라서 도커는 점점 더 중요해지고 있습니다.

이 기사의 목적

이 기사에서는 프로젝트 예제를 사용하여 Docker 외부 인터페이스를 통해 Docker 컨테이너를 관리하고 모니터링하는 방법을 소개합니다.

애플리케이션 시나리오:

Docker를 통해 서버 리소스 풀을 통합하고, 리소스를 할당하고, 요청에 따라 컨테이너를 생성하여 리소스 활용도를 극대화합니다. 동시에 각 비즈니스(컨테이너) 간의 격리가 보장됩니다. 그리고 프로젝트의 온라인 배포를 지원할 수 있습니다.

1. 인터페이스를 통해 docker tomcat 컨테이너를 생성하고 제한을 구성합니다.

2. war 패키지를 업로드하고 컨테이너에 배포합니다.

3. 모든 도커 컨테이너의 리소스 사용량을 동적으로 모니터링합니다.

코드는 docker-java 오픈소스 컴포넌트를 기반으로 작성되었으며, spring-boot 기반으로 기능 개발이 완료되었습니다. 인터페이스는 아래와 같습니다:

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

기본 환경

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 버전인 경우 건너뛸 수 있습니다).

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

제품 키를 변경하려면 클릭하고 Professional을 입력하세요. 버전 키를 입력하고 천천히 기다려 업그레이드하세요. 키는 온라인에서 직접 찾을 수 있으며 어쨌든 거기에 있습니다.

2. Windows용 Docker 설치

공식 웹사이트로 이동하여 다운로드한 후 다음 단계를 진행하세요. 설치 후 자동으로 시작되며, 시작 후 도구 모음에 docker 로고가 나타납니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

설치가 성공한 후 몇 가지 명령을 입력하여 성공 여부를 테스트할 수 있습니다. 예: docker에 대한 기본 정보를 봅니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

3. 도커 이미지 주소를 수정합니다.

기본 미러 주소가 느리기 때문에 Tomcat 미러의 길이는 500미터가 넘습니다. 네트워크가 좋지 않으면 다운로드가 매우 느려집니다. 다음과 같이 미러 주소를 NetEase의 미러 주소로 구성할 수 있습니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법4. 원격 관리 시작

마지막 항목을 확인하세요. 여기서 tcp//xxx는 원격 연결 주소입니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법시작한 후 브라우저에 주소를 입력하여 결과가 반환될 수 있는지 확인하세요.

(이 주소는 cmd에 docker indo를 입력하는 것과 동일합니다.) 반환되는 내용은 json 형식입니다:

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

코드 개발 구현 과정

1. Maven 프로젝트를 생성합니다.

과정이 간단해서 이 과정은 생략합니다. 전체 프로젝트의 코드 구조는 다음과 같습니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법2. docker-java 및 spring boot의 maven 종속성을 구성합니다. 최종 pom 파일 내용은 다음과 같습니다

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

jar 패키지를 보면 docker-java의 맨 아래 레이어는 netty dependency를 사용해야 합니다.

3. spring 구성 파일 application.properties를 추가합니다.

jsp의 위치와 docker의 관리 주소를 구성합니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

4. 메인 수업 소개:

1.스프링부트 스타트업 메인 수업.

물론 다른 컨테이너를 구성하거나 Maven의 부두 플러그인을 사용하여 시작할 수도 있습니다.

소스 코드 다운로드가 포함된 spring-boot 원리(spring-boot-starter 인스턴스 구현)를 참조할 수 있습니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

이 클래스의 위치에 주의하세요. 배치하는 것이 가장 좋습니다. 루트 디렉터리에 있으므로 루트 디렉터리 아래에 있습니다. 모든 하위 디렉터리는 Spring에서 검색할 수 있습니다.

2.dockerclientoperaterserver(docker와 상호 작용하는 클래스)는 다음과 같습니다.

다음 메서드를 포함합니다.

initclient: 초기화 링크.

getdockerinfo: docker에 대한 기본 정보 가져오기

stat: 실시간 통계 정보

refreshcontainers: 모든 컨테이너에 대한 기본 정보를 가져와 캐시에 저장

createandstartrcontaineranddeployapp: 전달된 매개변수에 따라 컨테이너 생성 및 시작

stopcontainer: 컨테이너를 중지합니다.

closeclient: 링크를 닫습니다.

pushapptocotainer: tomcat에 war 패키지를 배포합니다. 코드 조각이 너무 깁니다. 몇 가지 주요 방법은 다음과 같습니다.

createcontainer(컨테이너 생성):

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법이 방법은 docker-java를 사용하여 컨테이너 생성, 할당량 할당, 포트 매핑 구성 등을 수행합니다.

pushapptocotainer: 프로젝트를 tomcat에 배포

stat, 모니터링 방법:

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법이 부분을 모니터링하는 docker-java 방법은 실제로 지원되지만 반환된 결과에는 다양한 처리가 필요하기 때문에. 기회주의를 사용했습니다. java를 사용하여 cmd를 호출하여 실행(docker stats)하여 모니터링 결과를 얻습니다.

docker-java 모니터링 정보를 얻는 코드는 다음과 같습니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법

3.dockerclientcontroller(인터페이스와 상호작용하는 컨트롤러).

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법주요 메소드 소개:

addcontainer: 컨테이너 추가 및 war 패키지 업로드

위는 메인 코드에 대한 설명입니다.

springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법구체적인 코드 세부사항은 소스코드를 다운로드한 후 절차에 따라 확인하시기 바랍니다.

구현 후 기본 인터페이스:

샘플 프로젝트이므로 코드는 vue 및 부트스트랩 프레임워크를 사용하지 않습니다. 나는 CSS와 JS를 직접 작성했습니다. 구체적인 효과는 다음과 같습니다. 1. 모니터링 및 관리 홈페이지

2. 컨테이너 추가;

위 내용은 springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
SpringBoot Multi-Data 소스 구성에서 낮에는 데이터베이스 액세스가 낮고 밤에는 빠른 이유는 무엇입니까?SpringBoot Multi-Data 소스 구성에서 낮에는 데이터베이스 액세스가 낮고 밤에는 빠른 이유는 무엇입니까?Apr 19, 2025 pm 04:06 PM

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

NoclassDeffoundError Java Project가 JAR에 포장 된 후 나타납니다. JDK 버전 호환성 문제를 해결하는 방법은 무엇입니까?NoclassDeffoundError Java Project가 JAR에 포장 된 후 나타납니다. JDK 버전 호환성 문제를 해결하는 방법은 무엇입니까?Apr 19, 2025 pm 04:03 PM

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

Intellij 아이디어의 크래킹 프로세스를 분석하고 등록을 담당하는 LIB 또는 클래스를 찾는 방법은 무엇입니까?Intellij 아이디어의 크래킹 프로세스를 분석하고 등록을 담당하는 LIB 또는 클래스를 찾는 방법은 무엇입니까?Apr 19, 2025 pm 04:00 PM

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

Java 및 Javacv를 사용하여 비디오 품질을 향상시키는 방법은 무엇입니까? 효과가 제한된 이유는 무엇입니까?Java 및 Javacv를 사용하여 비디오 품질을 향상시키는 방법은 무엇입니까? 효과가 제한된 이유는 무엇입니까?Apr 19, 2025 pm 03:57 PM

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

SpringBoot에서 @requestbody 주석을 가져 오려면 비 JSON 형식의 문자열 매개 변수를 올바르게 수신하는 방법은 무엇입니까?SpringBoot에서 @requestbody 주석을 가져 오려면 비 JSON 형식의 문자열 매개 변수를 올바르게 수신하는 방법은 무엇입니까?Apr 19, 2025 pm 03:54 PM

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

Java에서 ConsperenthashMap을 선언 할 때 정적 키워드가 추가되는 데 어떤 영향을 미칩니 까?Java에서 ConsperenthashMap을 선언 할 때 정적 키워드가 추가되는 데 어떤 영향을 미칩니 까?Apr 19, 2025 pm 03:51 PM

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

사용자 정의 스레드 풀을 구성 할 때는 초기화 () 메소드를 구성하지 않으며 프로그램이 여전히 정상적으로 실행되는 이유는 무엇입니까?사용자 정의 스레드 풀을 구성 할 때는 초기화 () 메소드를 구성하지 않으며 프로그램이 여전히 정상적으로 실행되는 이유는 무엇입니까?Apr 19, 2025 pm 03:48 PM

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

곡선 통합 변환 : 왜 극지 좌표 변환 대신 y = sin (t)을 사용합니까?곡선 통합 변환 : 왜 극지 좌표 변환 대신 y = sin (t)을 사용합니까?Apr 19, 2025 pm 03:45 PM

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

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

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

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

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

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA

DVWA

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