로컬에서(mac) docker compose를 사용해 zookeeper와 kafka multi broker를 띄우던 중 제목과 같은 에러가 발생했다.
이는 docker yml에서 volumes설정 때문이었는데, 제목에도 나와 있듯 이미 다른 kafka 프로세스가 점유하고 있어서이다.
volumes:
- /Users/humanlearning/Downloads/docker/kafka:/var/lib/kafka/data
필자는 모든 서비스의 volumes 위와 같이 설정했다. 그렇다면 혹자는 당연히 다 같은 폴더로 지정하면 에러가 뜨는거 아니냐 하겠지만,
맞다.
사실 그냥 volumes를 안바꾸고 할 수 있는 방법은 없을까 객기를 부려봤다. 뭐 .lock 파일을 지우면 된다고 하는데 command : rm /var/lib/kafka/data/.lock 도 해보다가 결론적으론 잘 안됐다.
Failed to acquire lock on file .lock in /kafka/kafka-logs-56edfccac428
I received this error when I ran the kafka container on docker. Thereafter, I gave the following commands: docker exec -it /bin/sh #This starts the kafka container in interactive mode cd /opt/kaf...
stackoverflow.com
그래서 해결법은 그냥 voulmes값에서 왼쪽 즉, host machine의 값을 각 서비스마다 다르게 설정해주면 된다.
volumes:
- /Users/humanlearning/Downloads/docker/kafka/1:/var/lib/kafka/data
volumes:
- /Users/humanlearning/Downloads/docker/kafka/2:/var/lib/kafka/data
volumes:
- /Users/humanlearning/Downloads/docker/kafka/3:/var/lib/kafka/data
'docker' 카테고리의 다른 글
docker로 postgres 구축하기 w. official image (11) | 2024.03.14 |
---|