[ Docker ] Docker 설치

ma.caron_g·2022년 10월 23일
0

Docker

목록 보기
1/1
post-thumbnail

참고 사이트
https://erjuer.tistory.com/88

[ Docker란? ]

도커는 리눅스 상에서 컨테이너 방식으로 프로세스를 격리해서 실행하고 관리할 수 있도록 도와주며, 계층화된 파일 스스템에 기반해 효율적인 이미지(프로세스 실행 환경)을 구축할 수 있도록 해주는 컨테이너입니다.

[ Docker 설치 ]

https://www.docker.com/products/docker-desktop

다음 링크를 들어가서 Docker를 설치해줍니다.

$ docker -v

설치 후, 터미널에 다음 명령어를 입력하면

$ docker -v
Docker version 20.10.20, build 9fdeb9c
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c

Docker 버전을 확인할 수 있습니다.

[ docker-compose ]

Mac OS 환경에서는 docker 설치 시 docker-compose가 자동으로 설치된다고 합니다.

여기서 docker-compose란,
kafka와 Zookeeper(kafka 분산 처리에 대한 코디네이트를 진행하는 도구)이 두개를 모두 활용하기 위해 사용

  • Docker-Compose
    Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. Compose에서는 YAML 파일을 사용하여 애플리케이션 서비스를 구성합니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 만들고 시작합니다.

설치 후

$ docker search kafka

다음 명령어를 통해 docker의 이미지를 검색해줍니다.

NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
bitnami/kafka                                Apache Kafka is a distributed streaming plat…   562                  [OK]
ubuntu/kafka                                 Apache Kafka, a distributed event streaming …   13                   
bitnami/kafka-exporter                                                                       8                    
bitnami/kafka-trigger-controller             Source for this controller is in the kubeles…   5                    
ibmcom/kafka                                 Docker Image for IBM Cloud Private-CE (Commu…   5                    
openwhisk/kafkaprovider                      Apache OpenWhisk event provider service for2                    [OK]
rancher/kafka                                                                                2                    
ibmcom/kafka-java-liberty-sample             Docker image for the IBM Event Streams Java …   2                    
ibmcom/kafka-java-console-sample             Docker image for the IBM Event Streams Java …   1                    
ibmcom/kafka-sender                                                                          1                    
ibmcom/kafka-retry                           Kafka Retry provides a generic, delayed retr…   1                    
ibmcom/kafka-nodejs-console-sample           Docker image for the IBM Event Streams Node.…   1                    
ibmcom/kafka-python-console-sample           Docker image for the IBM Event Streams Pytho…   1                    
ibmcom/kafka-receiver                                                                        1                    
pachyderm/kafka-example-producer                                                             0                    
vertica/kafka-scheduler                      Kafka Scheduler is a standalone java app tha…   0                    
ibmcom/kafka-ppc64le                         An open-source stream processing platform       0                    
antrea/kafka-consumer                                                                        0                    
radarbase/kafka-connect-mongodb-sink         Kafka MongoDB sink connector                    0                    
radarbase/kafka-manager                      Integrate kafka-manager with the rest of the…   0                    
radarbase/kafka-connect-rest-fitbit-source    Kafka Connect source connector for a genera…   0                    
litmuschaos/kafka-client                                                                     0                    
pachyderm/kafka-example-consumer                                                             0                    
radarbase/kafka-init                                                                         0                    
pachyderm/kafka_spout                                                                        0    

참고한 블로그에서와 다른 결과가 나왔습니다.

나는 STARTS 값이 bitnami/kafka가 가장 높은 결과값이 나왔지만

참고한 사이트에서는 wurstmeister/kafka라는 값이 나오며 1445로 가장 높은 값이 나왔습니다.

일단 블로그를 따라하기 위해 블로그의 내용으로 다운을 받았습니다.

$ git clone https://github.com/wurstmeister/kafka-docker

다음 명령어를 입력해주면

kafka-docker 폴더가 생성됩니다.

kafka-docker 폴더로 이동합니다.

maseunghyun@maseunghyeon-ui-MacBookPro kafka-docker % ls
CHANGELOG.md				docker-compose-single-broker.yml	overrides
Dockerfile				    docker-compose-swarm.yml			start-kafka-shell.sh
LICENSE					    docker-compose.yml					start-kafka.sh
README.md					docker_buildx						test
broker-list.sh				docker_push							versions.sh
create-topics.sh			download-kafka.sh

여기서
docker-compose.yml 파일을 수정해주겠습니다.

$ sudo vi docker-compose.yml

vi 편집기를 통해 해당 파일을 열어주겠습니다.

혹시 오류날 시 원본

  1 version: '2'
  2 services:
  3   zookeeper:
  4     image: wurstmeister/zookeeper
  5     ports:
  6       - "2181:2181"
  7     restart: unless-stopped
  8 
  9   kafka:
 10     build: .
 11     ports:
 12       - "9092"
 13     environment:
 14       DOCKER_API_VERSION: 1.22
 15       KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
 16       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
 17     volumes:
 18       - /var/run/docker.sock:/var/run/docker.sock
 19     restart: unless-stopped

여기서 4가지 항목을 바꿔주겠습니다.

  1 version: '2'
  2 services:
  3   zookeeper:
  4     container_name: ma-zookeeper
  5     image: wurstmeister/zookeeper
  6     ports:
  7       - "2181:2181"
  8     restart: unless-stopped
  9 
 10   kafka:
 11     container_name: ma-kafka
 12     image: wurstmeiter/kafka
 13     build: .
 14     ports:
 15       - "9092"
 16     environment:
 17       DOCKER_API_VERSION: 1.22
 18       KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
 19       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
 20       KAFKA_CREATE_TOPICs: "kafka_user:1:1"
 21     volumes:
 22       - /var/run/docker.sock:/var/run/docker.sock
 23     restart: unless-stopped

```shell
#추가
 4 container_name : [사용자 지정]
#추가
11 container_name : [사용자 지정]

#수정
15 # KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
16 KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1

#추가
#Topic명:Partition개수:Replica개수
18 KAFKA_CREATE_TOPICs: "kafka_user:1:1"

변경 후

docker-compose up -d

명령어를 실행하여 해당 파일을 background값으로 실행시킵니다.

Recreating kafka-docker_zookeeper_1 ... done
Recreating kafka-docker_kafka_1     ... done

다음과 같은 명령어가 실행되면서 실행이 완료됩니다.

이 후,
잘 실행되는지 확인하기 위해 다음 명령어를 입력해줍니다.

# zookeeper 로그 확인
$ docker container logs ma-zookeeper
# kafka 로그 확인
$ docker container logs ma-kafka
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글