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)하여 모니터링 결과를 얻습니다.
docker-java 모니터링 정보를 얻는 코드는 다음과 같습니다. 3.dockerclientcontroller(인터페이스와 상호작용하는 컨트롤러).주요 메소드 소개:
addcontainer: 컨테이너 추가 및 war 패키지 업로드
위는 메인 코드에 대한 설명입니다.구체적인 코드 세부사항은 소스코드를 다운로드한 후 절차에 따라 확인하시기 바랍니다.
구현 후 기본 인터페이스:샘플 프로젝트이므로 코드는 vue 및 부트스트랩 프레임워크를 사용하지 않습니다. 나는 CSS와 JS를 직접 작성했습니다. 구체적인 효과는 다음과 같습니다. 1. 모니터링 및 관리 홈페이지
2. 컨테이너 추가;위 내용은 springboot 및 docker-java를 기반으로 docker 컨테이너의 동적 관리 및 모니터링을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!