docker desktop에서 kafka와 zookeeper의 로그를 보면 이상이 없는데 

자꾸 이렇게 오류가 뜬다........

이거때문에 이틀동안 오류를 해결 못하고 있다ㅜㅜㅜㅜ

 

일단 kafka 파일에서 포트 설정을 해주어야 한다고 하는데 

처음에는 아무것도 모르고 이상한 kafka 파일을 다운받아서 그안에서 자꾸 해결을 하려고 했따..........

터미널창에서 들어가서 했어야하는데ㅠㅠㅠㅠ 멍청이다..

 

 

제일 먼저 도커 컨테이너를 실행시킨 상태에서

powershell을 열어서 카프카 컨테이너로 들어간다

docker exec -it kafka /bin/bash

config 폴더로 가서

cd /opt/kafka/config​

server파일을 수정해주려고 하는데 vi가 안먹히는 것 ㅠㅠㅠ

vi server.properties

찾아보니 nano로 하면 된다고 해서 했는데 이것도 안먹힘.............

nano server.properties

그래서 nano를 깔아주었따

apt-get update​

apt-get install nano

그러고 나서 수정하러 들어가니까 너무 잘댐!!!!!!!!!!!!!!

맨밑에 부분 주석을 저렇게 제거해주어야 한다고 한다!

 

그리고 kafka가 잘 실행되고 있는지 확인해보자.

 

topic을 먼저 생성해준다.

kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic chat-topic

그리고 1번 터미널에서 접속을 해서 메세지를 보내주고

kafka-console-producer.sh --topic chat-topic --broker-list localhost:9092

2번 터미널에서 메세지를 받을 거다

kafka-console-consumer.sh --topic chat-topic --bootstrap-server localhost:9092 --from-beginning

kafka는 아주 잘 작동하는걸루....

 

 

근데 왜 안되는거야...........하아...................

'개발일기 > Docker' 카테고리의 다른 글

docker desktop(window 11)  (0) 2023.07.20

이제 docker에 kafka를 설치해보자

1.kafka 설치

docker pull wurstmeister/kafka

2. zookeeper 설치

docker pull wurstmeister/zookeeper

다음은

3. docker-compose.yml 파일 생성하기

version: '3'

services:
  server1:
    image: your_server1_image # 서버1 이미지
    ports:
      - "8081:8080" # 서버1이 동작하는 포트 설정

  server2:
    image: your_server2_image # 서버2 이미지
    ports:
      - "8082:8080" # 서버2가 동작하는 포트 설정

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092" # Kafka 브로커가 동작하는 포트 설정
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9092 # 호스트에서 접근할 수 있도록 설정
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9092
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
      KAFKA_CREATE_TOPICS: "your_topic_name:1:1" # 사용할 Kafka 토픽 이름 설정
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" # Zookeeper 서버 주소 설정

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181" # Zookeeper가 동작하는 포트 설정

4. docker-compose.yml 파일을 올리자!

docker-compose -f docker-compose.yml up

오 싱기해 너무 이쁘다~!!!!

 

도커 데스크탑에 가서 확인해보니 아주 잘 들어가있다!

 

이로써 kafka와 zookeeper 모두 실행되는 것을 확인했따 !

 

 

 

'개발일기' 카테고리의 다른 글

NPE를 막기 위한 방법?  (0) 2024.04.17
Mybatis에서 index 오류?  (0) 2024.04.05
sse 채팅 id 생성 안됨 오류  (2) 2023.07.31
sse 랜덤채팅-docker,kafka 사용하기(1)  (0) 2023.07.21

1. mongodb를 생성한 후 Dockerfile 을 작성한다.

FROM gradle:7.2.0-jdk17 AS build
WORKDIR /app
COPY build.gradle settings.gradle /app/
COPY src/ /app/src/
RUN gradle bootJar

# Step 2: Create the Docker image for the application
FROM openjdk:17
WORKDIR /app
COPY --from=build /app/build/libs/BubbleBabble-0.0.1-SNAPSHOT.jar /app/BubbleBabble.jar

# Step 3: Set environment variables for MongoDB connection
ENV MONGO_DB_URI=mongodb+srv://soolo:soolo@cluster0.nnm1vfo.mongodb.net/BubbleBabble?retryWrites=true&w=majority
ENV SERVER_PORT=5501

# Step 4: Expose the port for the Spring Boot application
EXPOSE $SERVER_PORT

# Step 5: Run the Spring Boot application
CMD ["java", "-jar", "BubbleBabble.jar"]

2. 우선적으로 build를 처리해준다.

 

빌드 깔끔하게 성공~

 

그러면 FileZila로 확인했을 때

jar 파일이 잘 생성된 것을 확인 할 수 있따!

 

3. 도커쉘을 실행시킨다(이것은 다른 방법이 있을텐데 좀 더 찾아봐야겠다ㅜㅜ)

2023.07.20 - [내 자신 되돌아보기] - docker desktop(window 11)

 

docker desktop(window 11)

도커 어플리케이션을 다운받았는데 실행이 안되는 문제가 발생했다ㅠㅜㅠ 진짜 구글링해서 할 수 있는 거 다해봤는데 안댐......... 근데 BIOS 환경을 잘못건드리면 윈도우가 날라갈 수 있따고 해

chana73.tistory.com

**shell로 하면 안되고 desktop으로 해야함!!!!!!!

 

 

4. 터미널에 (나는 기본적으로 intellij 터미널을 이용했다)

docker build -f Dockerfile .

dockerfile도 깔끔하게 빌드되었따!

 

5. 이미지를 생성해보자

docker build -t serv2:0.0.1 .
// docker build -t name:tag .

docker images

이미지가 잘 생성된 것을 볼 수 있다!>_<

+ 이건 사실 터미널에 치지 않아도 Desktop에서 바로 확인이 가능하다

 

이제 컨테이너도 만들어보자

docker-compose up -d

이렇게 하면 컨테이너가 생성되면서 백그라운드로 실행이 된다!~

'개발일기' 카테고리의 다른 글

NPE를 막기 위한 방법?  (0) 2024.04.17
Mybatis에서 index 오류?  (0) 2024.04.05
sse 채팅 id 생성 안됨 오류  (2) 2023.07.31
sse 랜덤채팅-docker, kafka 사용하기(2)  (0) 2023.07.22

도커 어플리케이션을 다운받았는데 실행이 안되는 문제가 발생했다ㅠㅜㅠ

진짜 구글링해서 할 수 있는 거 다해봤는데 안댐.........

근데 BIOS 환경을 잘못건드리면 윈도우가 날라갈 수 있따고 해서 너무 무서웠다......

 

일단 CPU 확인해보니(ctrl+shift+esc 눌러서 성능 부분으로 들어가면 CPU가 보임)

가상환경설정은 되어있었고( 오른쪽 아래부분에 "가상화: 사용")

window기능 켜기/끄기

부분으로 들어가서 확인해보니 두가지 모두 체크되어있었따...

대체 왜때문에 안되는거니?????????????????

 

<해결방법>

Windowpowershell 에 들어가서

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

이걸 입력하면 된다고 했는데 나는

응 안통해~~ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

쉽지않군...........

 

두번째

다시 파워쉘을 관리자모드로 실행 후

bcdedit /set hypervisorlaunchtype auto

요걸 입력해서 hypervisorlaunchtype 을 auto로 설정해주고

컴퓨터를 재부팅했더니 도커 실행됐따!!!!!!!!!!!!

감격........이거때문에 이틀을 날려벌미 ㅎㅎㅎㅎ

 


BUT... 여기서 끝이 아니었다..............

도커는 기본적으로 리눅스 환경에서 실행이 되기때미.. WSL2 활성화를 해주어야한다.

 

1. 관리자 권한으로 Windows PowerShell 실행!

 1) wsl부터 설치해준다.

 

wsl --install

 2)

# Windows SubSystem Linux를 활성화시키는 명령어
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# VirtualMachinePlatform 기능을 활성화시키는 명령어 : WSL2 버전에 필요한 명령어
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

2. 컴터 재부팅 후 Windows PowerShell 실행하고  wsl 명령어 실행해 설치 되었는지 확인.

Linux용 Windows 하위 시스템에 배포가 설치되어 있지 않습니다 ~ 어쩌구 하면 성공!

 

3. WSL2 리눅스 커널 업데이트

4. 모든 WSL이 기본적으로 WSL2를 사용하도록 설정

wsl --set-default-version 2

5. WSL2 우분투 설치(꼭 20.04 버전을 받아야하는지는 의문,,)

wsl --install -d Ubuntu-20.04

 

6. Windows PowerShell에서 ubuntu가 정상적으로 설치되었는지 확인

wsl -l -v
# -l : 현재 설치된 리눅스 배포판 명령어 확인
# -v : 버전 확인

7. Ubuntu 실행하여 username, password 설정

 

8. Windows PowerShell을 실행시키면 이제 우분투 환경에서 작업이 가능하다!!

 

 

처음에는 아무것도 모르고 Docker Shell로 작업을 했는데 알고보니 이제 Shell을 대신하기 위해 Docker에서 Desktop을 만들었다고 한다ㅠㅠㅠ

그래서 Shell보다 Desktop에서 작업하기에 환경이 더 좋으니 Desktop을 추천한다!!

shell에서 작업의 한계가 있음 ㅠㅠ

 

+ Docker Desktop에서 switch to windows 하려고 삽질을 여러번함....

우분투를 설치하면 모든것이 깔끔!

나처럼 삽질하는 사람이 없길 ㅠㅠ


참조

https://velog.io/@woody_/Docker-%EC%84%A4%EC%B9%98Window-11

 

Docker 설치(Window 11)

Docker는 리눅스를 기반으로 동작한다. 따라서 윈도우 환경에서 리눅스를 사용할 수 있도록 도와주는 WSL2를 활성화 해야한다.WSL(Windows Subsystem for Linux)는 VM과 같은 도구 없이 윈도우 환경에서 Linux

velog.io

https://sangchul.kr/entry/%EC%9B%90%EB%8F%84%EC%9A%B0-%EC%9C%88%EB%8F%84%EC%9A%B011-WSL2-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-WSL2-%EC%9A%B0%EB%B6%84%ED%88%AC-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

'개발일기 > Docker' 카테고리의 다른 글

docker-kafka 동작 확인하기  (0) 2023.07.24

처음에는 도커 쉘에서 작업을 진행하다가

도저히 뭔가 아닌 것 같아서 인텔리제이의 터미널에서 작업을 해보았다..

 

첫번째로

docker build -f Dockerfile .

명령어를 실행했는데 failed가 되었다... 

계속 뭔가 jar 파일을 못찾고 있다고 뜨는데 왜 못찾느거지..ㅠㅠㅠㅠ

빌드가 잘못되고 있나??

아!!!!!! 그때 머리 속에 번뜩 생각남

CICD할때 Gradle에 들어가서 build를 했던 그때!!!!!!!

성공했따.......빌드 성공ㄱ~!!!

다시 명령어를 해보니 아주 잘되었따 쿄쿄쿄쿄쿄 

역시 cicd 나를 괴롭게하더니....... 나를 이렇게 성장시켜주었어

아주 기특해 나자신

 

그다음 명령어인

docker-compose up -d 를 실행하는데 또 failed...

이제 익숙하지 ^^

docker-compose.yml 파일

version: "3"
services:
  app:
    build: src/main/java
    restart: always
    ports:
      - 5501:5501
    links:
      - mongo
    depends_on:
      - mongo
    networks:
      - main-network

  mongo:
    image: "mongo:new"
    container_name: mongo
    hostname: mongo
    networks:
      - main-network
    environment:
      - MONGO_INITDB_ROOT_USERNAME=soolo
      - MONGO_INITDB_ROOT_PASSWORD=soolo
      - MONGO_INITDB_DATABASE=sooloChat
    restart: always
    ports:
      - 27017:27017
    command: [ "--bind_ip", "0.0.0.0" ]
    volumes:
      - mongodata:/data/db

volumes:
  mongodata:
networks:
  main-network:
    driver: bridge

Dockerfile

FROM openjdk:17
LABEL maintainer="soolo"
VOLUME /main-app
ADD build/libs/SooloChat-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 5501
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb+srv://soolo:soolo@cluster0.nnm1vfo.mongodb.net/?retryWrites=true&w=majority","-jar","app.jar"]

이렇게 작성되어있는데

처음에는 명령어를 

docker build -f Dockerfile . 로 해서 자꾸 오류가 났다. (사진은 오타)

 

그래서 두번째 생각한 것이 image 이름이지 않을까? 해서 Soolochat . 을 넣었더니 성공ㄱ!!!!!!!!

 

헷갈릴거 같아서 mongo:6.0.8 으로 변경해서 한번 더 실행~

계속 실험을 한 후 이미지 파일을 실행시키는데

docker run -p 5501:5501 mongo:new

(채팅서버 포트는 5501로 설정을 해놓았음)

 

드이어 성공인가 싶더니

이번엔 database name empty! 라고 느낌표까지 씨게 박아준다^^ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

대체 왜 비어있다는거니쥬ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ


아하?????? mongodb의 데이터베이스 이름을 잘못적엇다!!!!!

왜인지 모르겠으나.. mongodb 사이트와 어플리케이션에서의 데이터베이스가 달랐던것 ㅠㅠ

저 데이터베이스 이름을 적었더니 실행됐따!!!!!!!

도커쉘에서 확인해보니 아주 잘 돌아가고있군>_<

너무 행벅~~~~~~~

+ Recent posts