도커 스웜과 도커 컴포즈? 이제 함께 작동합니다! Docker 1.13 의 새 버전을 소개했습니다. 도커 컴포즈. 이번 릴리스의 주요 기능은 Docker Compose 파일을 사용하여 정의한 서비스를 스웜 모드로 활성화된 Docker 엔진에 직접 배포할 수 있다는 것입니다. Docker Compose가 포함된 Docker Swarm을 사용하면 멀티 호스트에 멀티 컨테이너 애플리케이션을 간편하게 배포할 수 있습니다.

Docker 1.13

이 블로그에서는 간단한 Docker Swarm 및 Docker Compose 파일을 통해 Docker 1.13에서 서비스가 어떻게 생성되고 배포되는지 보여드립니다.

다음은 Couchbase 데이터베이스 노드를 시작하기 위한 Docker Compose v2 정의입니다:

이 정의는 스웜 모드가 없는 Docker 엔진에서 다음과 같이 시작할 수 있습니다:

그러면 작성 파일에 정의된 서비스의 단일 복제본이 시작됩니다. 이 서비스는 다음과 같이 확장할 수 있습니다:

이 방법은 단일 호스트에서 정상적으로 작동합니다. 도커 엔진에서 스웜 모드가 켜져 있으면 메시지가 표시됩니다:

Docker Compose는 멀티 컨테이너 애플리케이션을 제공하지만 애플리케이션은 여전히 단일 호스트로 제한됩니다. 그리고 이는 단일 장애 지점입니다. 스웜 모드의 Docker Compose를 사용하면 Docker 엔진의 클러스터를 생성할 수 있습니다. 1.13에서는 도커 스택 배포 명령을 사용하여 Docker Compose 파일을 Docker 스웜 모드로 배포할 수 있습니다. 다음은 Docker Compose v3 정의의 예입니다:

보시다시피 유일한 변경 사항은 버전 어트리뷰트입니다. 다른 도커 컴포즈 v3의 변경 사항. 또한 다음에 대해서도 읽어보세요. 다양한 도커 컴포즈 버전 그리고 방법 V2에서 V3로 업그레이드하세요. 스웜 모드로 Docker Compose를 활성화합니다:

다른 노드가 이 스웜 클러스터에 참여할 수 있으며 이를 통해 멀티 컨테이너 애플리케이션을 멀티 호스트에도 쉽게 배포할 수 있습니다. Docker를 사용하여 Compose 파일에 정의된 스웜에 서비스를 배포합니다:

여기서 기본값을 파일 작성으로 설정하면 명령이 조금 더 짧아집니다. #30352 에서 처리해야 합니다. 실행 중인 서비스 목록은 다음을 사용하여 확인할 수 있습니다. 도커 서비스 ls 명령을 사용합니다:

서비스 내에서 실행 중인 컨테이너 목록은 다음을 사용하여 확인할 수 있습니다. 도커 서비스 PS 명령을 사용합니다:

이 경우 단일 컨테이너가 서비스의 일부로 실행되고 있습니다. 노드는 다음과 같이 나열됩니다. moby 로 변경되며, 이는 Mac용 Docker를 사용하여 실행되는 Docker 엔진의 기본 이름입니다. 이제 서비스를 다음과 같이 확장할 수 있습니다:

그러면 컨테이너 목록을 다시 다음과 같이 볼 수 있습니다:

컨테이너에는 다음과 같은 형식을 사용하여 이름이 지정됩니다. _n. 두 컨테이너는 모두 동일한 호스트에서 실행되고 있습니다. 또한 두 컨테이너는 독립적인 Couchbase 노드이며 아직 클러스터로 구성되지 않았습니다. 이에 대해서는 이미 Docker를 사용한 카우치베이스 클러스터 단계가 곧 새로워질 예정입니다. 서비스에는 일반적으로 여러 호스트에 걸쳐 여러 개의 컨테이너가 실행됩니다. Docker 1.13에는 새로운 명령어가 도입되었습니다. 도커 서비스 로그 를 사용하여 모든 호스트의 모든 컨테이너에서 서비스 로그를 콘솔로 스트리밍할 수 있습니다. 저희의 경우, 다음 명령을 사용하여 확인할 수 있습니다. 도커 서비스 로그 couchbase_db 처럼 보입니다:

로그 문의 서문은 다음과 같은 형식을 사용합니다. .@. 그러면 컨테이너의 실제 로그 메시지가 표시됩니다. 처음에는 컨테이너 ID를 첨부하는 것이 중복되어 보일 수 있습니다. 하지만 도커 서비스 는 자가 복구 기능이 있습니다. 즉, 컨테이너가 죽으면 Docker 엔진은 지정된 시간에 지정된 수의 복제본을 보장하기 위해 다른 컨테이너를 시작합니다. 이 새 컨테이너는 새 ID를 갖게 됩니다. 따라서 올바른 컨테이너에서 로그 메시지를 첨부할 수 있습니다. 명령어를 간단히 비교해보겠습니다:

 Docker Compose v2  도커 컴포즈 v3
 서비스 시작 도커-컴포지트 업 -d 도커 스택 배포 --compose-file=docker-compose.yml  
 스케일 서비스 도커-컴포지션 스케일 = 도커 서비스 규모 =
 종료 도커-컴포지트 다운 도커 스택 RM
 멀티 호스트 아니요

Couchbase를 시작하고 싶으신가요? 다음을 살펴보세요. 카우치베이스 스타터 키트. 컨테이너에서 Couchbase를 실행하는 방법에 대해 자세히 알아보고 싶으신가요?

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 남기기