2017-11-19 3 views
0

도커 컨테이너 내부에서 내 컴퓨터의 로컬 redis 서버로 연결하려고합니다. 나는 지금까지 무엇을했는지 :도커 컨테이너에서 로컬 redis 서버에 연결하는 방법

  • 레디 스가 인 (우분투 이미지에서)
  • 대화 형 고정 표시기 컨테이너를 시작
  • 설치 "레디 스를 (CANN은 레디 스 - CLI를 통해 연결) 내 컴퓨터에서 실행 -tool "컨테이너 내부에
  • 은 레디 스-CLI를 통해 레디 스에 연결을 시도 :"레디 스-CLI -h 172.17.0.3 -p 6379 "(컨테이너 내부 ifconfig를 통해 IP 주소를 가지고)
  • 가 없다는 오류가 발생했습니다 '연결 거부 됨'

작동 연결을 얻으려고 생각하지 못한 트릭은 무엇입니까? 이미 redis.conf에 "bind 0.0.0.0"을 설정하려고했지만 아무 효과가 없습니다. 컨테이너를 실행할 때 포트 6379를 6379로 전달하려고 시도했지만 주소가 이미 사용 중임을 알리는 오류가 발생합니다.

미리 감사드립니다.

답변

1

컨테이너의 ip에는 연결하지 말고 호스트의 ip (docker 브리지의 경우 호스트에서 볼 수있는 포트)에 연결해야합니다. 질문을 보면 172.17.0.1이어야합니다.

+0

너무 감사하여 호스트 시스템에서 실행중인 호스트 이름 redis_server를 통해 레디 스 서버에 도달 할 수있을 것입니다! – kidman01

0

컨테이너 사이에 사용하십시오.
docker run -d --name=redis_xyz redis

docker run -it --link redis_xyz:redis_local redis_cli_image redis-cli -h redis_local

+0

댓글을 주셔서 감사합니다.하지만 컨테이너 안에 redis를 실행하려고하지 않았습니다. – kidman01

+0

죄송합니다. 그래서 redis-cli 컨테이너 내부를 시도하십시오 : redis-cli -h 0.0.0.0 또는 redis-cli -h HostIP. 172.17.0.3은 컨테이너 IP입니다. -h HostIP 또는 -h 0.0.0.0 사용 –

0

당신은이 작업을 수행 할 수 있습니다

  • 호스트 컴퓨터의 IP를 얻을, 예를 들어, ENV 변수 $ host_ip
  • 실행 고정 표시기 명령과 같은 지역 :
컨테이너 내부에서 이제
docker run -it --add-host redis_server:$host_ip ubuntu bash

당신은