찾다
운영 및 유지보수DockerDocker를 사용하여 Consul KV를 구성하는 방법

HashiCorp의 Consul은 다양한 기능을 제공하는 다목적 도구입니다. 최신 DevOps 환경에서. 서비스 검색에 널리 사용됩니다. 상태 확인, 로드 밸런싱, 특히 분산 키-값으로 (KV) 매장. Consul의 KV 매장은 동적 저장에 적합합니다. 구성 데이터, 기능 플래그, 비밀 및 메타데이터를 매우 인프라 전반에 걸쳐 사용 가능하고 일관된 방식으로 분산 시스템의 서비스에 의해 동적으로 액세스됩니다. 사용 Consul의 KV 스토어를 구성하는 Docker를 사용하면 빠른 설정과 격리된 환경을 제공하므로 테스트 및 개발에 이상적입니다.

이 튜토리얼에서는 설정 및 개발 과정을 안내합니다. Docker를 사용하여 Consul의 KV 스토어를 구성합니다. 결국, 당신은 KV 쌍을 사용하여 Docker에서 실행되는 완전한 기능의 Consul 인스턴스 구성되고 액세스 가능합니다. 이 설정은 동적 서비스에 필수적입니다. 분산 시스템의 구성 및 상태 관리.

1단계 — Consul Docker 이미지 가져오기

Docker Hub에서 공식 Consul 이미지를 가져오겠습니다. 이 이미지는 HashiCorp에서 관리하며 Consul을 실행하는 데 필요한 모든 것이 포함되어 있습니다.

Ubuntu Droplet 콘솔에 로그인하여 실행:

docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

단계 2 — Consul 컨테이너 실행

이제 Consul 이미지가 다운로드되었으므로 새 Consul을 시작할 수 있습니다. 컨테이너. 이 컨테이너는 Consul 서버 역할을 하며 KV 스토어와 상호 작용할 수 있습니다.

컨테이너를 시작하려면, 실행:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba

여기요 이 명령의 기능:

  • -d는 분리 모드(백그라운드)에서 컨테이너를 실행합니다.
  • --name=consul-server는 컨테이너에 이름을 할당합니다.
  • -e CONSUL_BIND_INTERFACE=eth0은 Consul이 바인딩해야 하는 네트워크 인터페이스를 설정합니다. 이는 적절한 네트워크 통신에 필요합니다.
  • -p 8500:8500은 Consul 웹 UI 및 API 포트를 호스트에 매핑합니다.
  • -p 8600:8600/udp는 DNS 서비스 포트를 호스트에 매핑합니다. 서비스 검색.

이 단계는 귀하가 사용할 핵심 Consul 서비스를 설정하므로 매우 중요합니다. KV 스토어를 구성합니다.

3단계 — Consul 설치 확인

Consul이 올바르게 실행되고 있는지 확인하려면 컨테이너 상태를 확인하고 Consul UI에 액세스해야 합니다.

먼저 docker ps를 실행하여 실행 중인 모든 컨테이너를 나열하고 Consul 컨테이너가 있는지 확인합니다. 달려요.

❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server

이제 Consul에 액세스할 수 있는지 확인하고 웹 브라우저를 열고 http://localhost:8500으로 이동합니다. 영사 UI가 표시됩니다.

이 확인 단계는 귀하의 영사 여부를 확인하는 데 중요합니다. KV에 데이터를 저장하기 전에 인스턴스가 문제 없이 실행 중입니다. 저장소(5단계).

4단계 — 방화벽 구성(선택 사항)

Consul 인스턴스에 외부적으로 액세스해야 하는 경우(예: 클러스터의 다른 노드) 방화벽 설정을 조정해야 합니다. 필요한 포트에서 트래픽을 허용합니다.

예를 들어, 클라우드 인스턴스에서 Consul을 실행하는 경우 다음을 수행할 수 있습니다. 포트 8500(HTTP API) 및 8600(DNS)에서 인바운드 트래픽을 허용해야 합니다. 특정 명령은 방화벽 솔루션(UFW, iptables 등).

이 단계를 통해 다른 인스턴스에서 Consul 인스턴스에 액세스할 수 있는지 확인합니다. 이는 분산 구성에 필수적인 머신입니다.

5단계 — 키-값 쌍 저장

Consul이 실행되면 이제 KV 스토어를 사용하여 저장할 수 있습니다. 구성 데이터. Consul CLI를 사용하여 키-값 쌍을 추가하거나 웹 UI.

CLI를 통해 키-값 쌍을 저장하려면, 실행:

docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

여기요 이 명령의 기능:

  • -it - 로컬 시스템에서 컨테이너로 대화형 터미널을 시작합니다.
  • consul kv put - kv put 명령은 지정된 경로에 데이터를 기록합니다 KV store.
  • config/db_host - 저장할 경로 value.
  • 192.168.1.100 - Value.

웹 UI를 사용하여

  1. Consul UI(http://localhost:8500)로 이동합니다. ).
  2. '키/값'을 클릭하세요. 탭.
  3. “생성”을 클릭하여 새 키를 생성합니다.
  4. 키(예: config/db_host)와 값(예: 192.168.1.100)을 입력합니다.

이러한 명령과 작업은 서비스가 동적으로 액세스할 수 있는 중요한 구성 데이터를 저장합니다. 런타임.

6단계 — 키-값 쌍 검색

일부 KV 쌍을 저장한 후에는 검색하여 올바르게 저장되었는지 확인해야 합니다.

CLI를 사용하여 다음을 사용하여 값을 검색합니다. 명령:

docker run -d --name=consul-server -e

웹 UI 이용 시

  1. Consul UI의 '키/값' 탭으로 이동합니다.
  2. 생성한 키를 찾아 클릭하면 저장된 내용을 확인할 수 있습니다. value.

Web GUI

KV 검색 중 쌍은 데이터가 올바르게 저장되고 액세스 가능한지 확인하는 데 필요한 단계입니다.

7단계 — Docker 볼륨을 사용하여 데이터 유지

기본적으로 Docker 컨테이너는 임시 컨테이너입니다. 용기를 제거하면 그 안에 저장된 내용이 손실됩니다. 지속하려면 Consul KV 데이터를 사용하려면 Docker 볼륨을 사용해야 합니다.

  1. 현재 Consul 컨테이너를 중지하고 제거합니다.
docker pull hashicorp/consul:latest

자, 이제 확인해 보세요. 컨테이너를 실행하면 Consul 컨테이너가 더 이상 실행되지 않는 것을 확인할 수 있습니다.

Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

2. 새 Consul 실행 Docker 볼륨이 있는 컨테이너 첨부:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
docker exec -it consul-server consul kv put config/db_host 
192.168.1.100
Success! Data written to: config/db_host

-v consul_data:/consul/data 옵션은 Docker 볼륨을 컨테이너에 마운트하여 컨테이너를 다시 시작해도 KV 저장소가 유지되도록 합니다.

8단계 — Consul 시작 자동화(선택 사항)

프로덕션의 경우 배포의 시작을 자동화할 수 있습니다. Docker Compose를 사용하는 Consul 컨테이너. Docker Compose는 단순화합니다 다중 컨테이너 Docker 애플리케이션을 사용하여 쉽게 관리할 수 있습니다. services.

다음 콘텐츠로 docker-compose.yml 파일을 만듭니다.

docker-compose,yml
docker exec -it consul-server consul kv put config/db_port 3306         Success! Data written to: config/db_port

그럼, 실행:

docker exec -it consul-server consul kv get config/db_host     
192.168.1.100
docker stop consul-server 
docker rm consul-server
docker ps CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
docker run -d --name=consul-server -e

이것은 명령은 Consul을 자동으로 시작하고 실패할 경우 다시 시작하도록 하여 프로덕션 용도로 더욱 강력하게 만듭니다.

9단계 — 정리

Consul 인스턴스 작업을 마친 후에는 다음을 수행해야 합니다. Docker 환경을 정리하여 리소스를 확보하세요.

영사를 중지하고 제거합시다. 컨테이너:

OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul
2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps

만약 Consul 사용이 끝나면 Docker 이미지를 제거할 수도 있습니다:

OutputCONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                                                    NAMES
2d2a7d3ff191   hashicorp/consul   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
services:
  consul:
    image: hashicorp/consul:latest    environment:
      - CONSUL_BIND_INTERFACE=eth0    volumes:
      - consul_data:/consul/data 
    ports:
      - "8500:8500"
      - "8600:8600/udp"
    restart: alwaysvolumes:
  consul_data:

정리하면 깔끔한 개발 환경을 유지하는 데 도움이 되며 Docker 리소스가 불필요하게 소모되지 않도록 할 수 있습니다.

위 내용은 Docker를 사용하여 Consul KV를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 digitalocean.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Docker : 개발 및 운영 간소화Docker : 개발 및 운영 간소화May 13, 2025 am 12:16 AM

Docker는 개발 및 운영 및 유지 보수 프로세스를 단순화 할 수있는 방법에는 다음이 포함됩니다. 1) 응용 프로그램이 다른 환경에서 일관되게 실행되도록 일관된 환경을 제공합니다. 2) Dockerfile 및 이미지 빌딩을 통한 응용 프로그램 배포 최적화; 3) DockerCompose를 사용하여 여러 서비스를 관리합니다. Docker는 컨테이너화 기술을 통해 이러한 기능을 구현하지만 사용하는 동안 이미지 구성, 컨테이너 시작 및 네트워크 구성과 같은 일반적인 문제에주의를 기울이고 이미지 최적화 및 리소스 관리를 통해 성능을 향상시켜야합니다.

Kubernetes vs. Docker : 관계 이해Kubernetes vs. Docker : 관계 이해May 12, 2025 am 12:16 AM

Docker와 Kubernetes의 관계는 다음과 같습니다. Docker는 응용 프로그램을 포장하는 데 사용되며 Kubernetes는 컨테이너를 오케스트레이션하고 관리하는 데 사용됩니다. 1. Docker는 컨테이너 기술을 통해 응용 프로그램 포장 및 배포를 단순화합니다. 2. Kubernetes는 컨테이너를 관리하여 고 가용성과 확장 성을 보장합니다. 응용 프로그램 배포 및 관리 효율성을 향상시키기 위해 조합으로 사용됩니다.

Docker : 컨테이너 혁명과 그 영향Docker : 컨테이너 혁명과 그 영향May 10, 2025 am 12:17 AM

Docker는 컨테이너 기술을 통해 다양한 환경에서 실행되는 소프트웨어의 일관성 문제를 해결합니다. 개발 역사는 2013 년부터 현재까지 클라우드 컴퓨팅 생태계의 진화를 촉진했습니다. Docker는 Linux 커널 기술을 사용하여 프로세스 격리 및 리소스 제한을 달성하여 응용 프로그램의 휴대 성을 향상시킵니다. 개발 및 배포에서 Docker는 리소스 활용 및 배포 속도를 향상시키고 DevOps 및 Microservice Architectures를 지원하지만 이미지 관리, 보안 및 컨테이너 오케스트레이션에 문제가 있습니다.

Docker vs. Virtual Machines : 비교Docker vs. Virtual Machines : 비교May 09, 2025 am 12:19 AM

Docker와 Virtual Machine에는 고유 한 장점과 단점이 있으며 선택은 특정 요구에 기초해야합니다. 1. Docker는 가볍고 빠르며 마이크로 서비스 및 CI/CD, 빠른 시작 및 낮은 리소스 활용에 적합합니다. 2. 가상 머신은 높은 분리 및 다중 운영 시스템 지원을 제공하지만 많은 리소스와 느린 시작을 소비합니다.

Docker 's Architecture : 용기 및 이미지 이해Docker 's Architecture : 용기 및 이미지 이해May 08, 2025 am 12:17 AM

Docker Architecture의 핵심 개념은 컨테이너 및 거울입니다. 1. 거울은 응용 프로그램 및 종속성을 포함한 컨테이너의 청사진입니다. 2. 컨테이너는 이미지 인스턴스를 실행 중이며 이미지를 기반으로 작성됩니다. 3. 거울은 다중 읽기 전용 레이어로 구성되며 컨테이너가 실행 중일 때 쓰기 가능한 층이 추가됩니다. 4. Linux 네임 스페이스 및 제어 그룹을 통해 리소스 격리 및 관리를 구현합니다.

Docker의 힘 : 컨테이너화가 설명되었습니다Docker의 힘 : 컨테이너화가 설명되었습니다May 07, 2025 am 12:07 AM

Docker는 컨테이너화 기술을 통한 응용 프로그램의 건설, 배포 및 운영을 단순화합니다. 1) Docker는 컨테이너 기술을 사용하여 응용 프로그램 및 종속성을 패키지하여 환경 간 일관성을 보장하는 오픈 소스 플랫폼입니다. 2) 거울과 용기는 Docker의 핵심입니다. 미러는 응용 프로그램의 실행 파악 패키지이며 컨테이너는 이미지의 실행 된 인스턴스입니다. 3) Docker의 기본 사용은 Nginx 서버를 실행하는 것과 같으며 Advanced 사용법은 DockerCompose를 사용하여 멀티 컨테이너 응용 프로그램을 관리하는 것과 같습니다. 4) 일반적인 오류에는 이미지 다운로드 실패 및 컨테이너 스타트 업 실패가 포함되며 디버깅 기술은 로그보기 및 포트 점검이 포함됩니다. 5) 성능 최적화 및 모범 사례에는 미러 최적화, 자원 관리 및 보안 개선이 포함됩니다.

Kubernetes 및 Docker : 컨테이너화 된 앱을 배포하고 관리합니다Kubernetes 및 Docker : 컨테이너화 된 앱을 배포하고 관리합니다May 06, 2025 am 12:13 AM

Kubernetes 및 Docker를 사용하여 컨테이너화 된 애플리케이션을 배포하는 단계에는 다음이 포함됩니다. 1. Docker Image를 작성하고 Dockerfile을 사용하여 응용 프로그램 이미지를 정의하고 DockerHub로 누릅니다. 2. 응용 프로그램을 관리하고 노출시키기 위해 Kubernetes에서 배포 및 서비스를 작성하십시오. 3. HorizontalpodaUtoscaler를 사용하여 동적 스케일링을 달성하십시오. 4. Kubectl 명령을 통해 일반적인 문제를 디버그하십시오. 5. 성능을 최적화하고 리소스 제한 및 요청을 정의하며 Helm을 사용하여 구성을 관리합니다.

Docker : 컨테이너화 기술 소개Docker : 컨테이너화 기술 소개May 05, 2025 am 12:11 AM

Docker는 애플리케이션을 개발, 포장 및 실행하는 오픈 소스 플랫폼으로, 컨테이너화 기술을 통해 다양한 환경에서 응용 프로그램의 일관성을 해결합니다. 1. 이미지 구축 : Dockerfile을 통해 응용 프로그램 환경 및 종속성을 정의하고 DockerBuild 명령을 사용하여 빌드하십시오. 2. 컨테이너 실행 : DockErrun 명령을 사용하여 거울에서 컨테이너를 시작하십시오. 3. 컨테이너 관리 : Dockerps, Dockerstop, DockErrm 및 기타 명령을 통해 컨테이너 수명주기 관리.

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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

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

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

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

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