01. consul 이란?

consul 의 경우 해시코프(HashiCorp)에서 개발을 했으며, 동적이고 분산된 인프라에서 애플리케이션을 연결하고 구성하기 위해 설계된 고가용성과 분산 환경을 지원하는 솔루션이며, 주요 기능으로 모든 인프라에서 서비스를 발견(Discovery) 하고 구성하는 것입니다.

 

02. docker 명령어로 consul 을 실행 합니다.

 

docker run -d --name consul -p 8500:8500 consul

 

 

만약 기존 컨테이너에 consul 이름으로 생성해 놓은 것이 있다면, 아래와 같이 Error 메세지를 볼 수 있습니다. 이럴 때는 기존에 존재하는 consul 이름을 우선 찾아서 삭제를 해줍니다.

docker: Error response from daemon: Conflict. The container name "/consul" is already in use by container "89c7a82ebdbef77bdc87c71ad7fcb20d22f8895deab16a068458b594b289e2c7". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

 

현재 생성된 컨테이너들을 조회를 합니다.

docker ps -a
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS                      PORTS                                                                      NAMES
89c7a82ebdbe        consul                                     "docker-entrypoint.s…"   2 days ago          Exited (255) 37 hours ago   8300-8302/tcp, 8301-8302/udp, 8600/tcp, 8600/udp, 0.0.0.0:8500->8500/tcp   consul
d2043aa1f98b        minio/minio:RELEASE.2020-08-04T23-10-51Z   "/usr/bin/docker-ent…"   2 months ago        Exited (255) 2 months ago   0.0.0.0:9001->9000/tcp                                                     minio_minio1_1
dec7c1a9b6f4        minio/minio:RELEASE.2020-08-04T23-10-51Z   "/usr/bin/docker-ent…"   2 months ago        Exited (255) 2 months ago   0.0.0.0:9003->9000/tcp                                                     minio_minio3_1
0af93a347ae2        minio/minio:RELEASE.2020-08-04T23-10-51Z   "/usr/bin/docker-ent…"   2 months ago        Exited (255) 2 months ago   0.0.0.0:9002->9000/tcp                                                     minio_minio2_1
7cde5d3d531d        minio/minio:RELEASE.2020-08-04T23-10-51Z   "/usr/bin/docker-ent…"   2 months ago        Exited (255) 2 months ago   0.0.0.0:9004->9000/tcp                                                     minio_minio4_1
9a8c5814f653        mysql                                      "docker-entrypoint.s…"   10 months ago       Exited (0) 10 months ago                                                                               mysql-db

 

필자의 경우에는 기존에 consul 이란 이름의 기존에 생성되어 있고 (맨 우측에 NAME 을 볼 수 있습니다.) ,

해당 컨테이너 ID 을 삭제 하도록 하겠습니다.

 

docker rm [삭제할 컨테이너 ID]

docker rm 89c7a82ebdbe

 

삭제를 한 후 맨 처음  01. docker 명령어로 consul 을 실행 합니다.

 

 

03. consul 관리 페이지

기본 consul의 포트 번호는 8500 입니다.

브라우저 창에 localhost:8500 을 입력을 하면, 아래와 같이 consul 관리 페이지를 볼 수 있습니다.

 

 

04. consul 사용 예

주요 기능 중 하나인 모든 인프라에서 서비스를 발견(Discovery) 하고 구성하는 예로  주문 서비스와 사용자 서비스 그리고 게이트웨이 서비스들을 consul 에 등록시켜주면, consul 에서는 등록된 서비스들을 발견하고, 구성을 해줍니다.

 

 

 

'IT > Infra' 카테고리의 다른 글

[Centos7] Rabbitmq 설치 (Feat. yum Repo 설치)  (0) 2020.11.29
[Vagrant] Multi VM , Memory, Cpus 설정  (0) 2020.11.29
[Mac] Rabbit MQ 설치  (0) 2020.10.11
[Docker] MinIO 객체 스토리지  (0) 2020.08.05
[Mac] MinIO 객체 스토리지  (0) 2020.08.01

+ Recent posts