728x90
반응형
로컬에서 redis를 6379 번 포트로 띄우고 도커에서 그 redis로 읽고 쓰는 작업을 하려 했다.
redis_connection = RedisConnection('127.0.0.1', '0')
이 코드를 이용하여 도커에서 redis를 접속하려고 했으나
다음과 같은 에러가 발생했다.
File "/opt/venv/lib/python3.9/site-packages/redis/connection.py", line 617, in connect
raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error 111 connecting to 127.0.0.1:6379. Connection refused.
도커 컨테이너에서 localhost를 실행하면 컨테이너 내의 localhost이므로 PC의 localhost(127.0.0.1) 과는 다르다
따라서 도커 컨테이너 내부에서 아래와 같이 실행하게 되면
curl localhost:6379
다음과 같은 에러 메시지가 나오게 된다.
curl: (7) Failed to connect to localhost port 6379: Connection refused
도커 네트워크 내에서는 6379번 포트를 사용하지 않기 때문에 연결이 거부된다.
이때, host.docker.internal 을 이용하면 된다. Docker에서는 자체적으로 저 도메인 네임을 가상으로 제공해주는데 이를 이용하면 도커 인스턴스 내부에서 호스트의 포트에 접속하는 것이 가능해진다.
728x90
반응형
'Docker' 카테고리의 다른 글
[Docker] Volume 사용시 mac 에 /var/lib/docker 경로가 없는 이유 | LIM (0) | 2023.05.14 |
---|---|
[Python] 도커 파일에 Pipenv 로 패키지 설치하기 | LIM (0) | 2023.05.12 |
[Docker] 컨테이너에 저장된 데이터 유지(Volume Mount) | LIM (0) | 2023.05.10 |
[Docker, GCP] docker push to artifact registry error 발생 및 해결 (0) | 2022.08.08 |
댓글