본문 바로가기
Docker

[Docker] 도커 내부에서 localhost 요청하기 | LIM

by forestlim 2022. 7. 19.
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
반응형

댓글