2016-09-10 3 views
2
에서 고정 표시기 내에서 실행 레디 스에 연결

나는 빠른 레디 스는 Windows 배포가없는확인/자바 (봄 부팅) 또는 Node.js를

docker run -p 6379:6379 redis 

(과 윈도우 PC에서 레디 스 시작, fork for Windows 최신 아니다 버전)

1:C 10 Sep 08:17:03.635 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 
       _._ 
      _.-``__ ''-._ 
     _.-`` `. `_. ''-._   Redis 3.2.3 (00000000/0) 64 bit 
    .-`` .-```. ```\/ _.,_ ''-._ 
( '  ,  .-` | `, )  Running in standalone mode 
|`-._`-...-` __...-.``-._|'` _.-'|  Port: 6379 
| `-._ `._ / _.-' |  PID: 1 
    `-._ `-._ `-./ _.-' _.-' 
|`-._`-._ `-.__.-' _.-'_.-'| 
| `-._`-._  _.-'_.-' |   http://redis.io 
    `-._ `-._`-.__.-'_.-' _.-' 
|`-._`-._ `-.__.-' _.-'_.-'| 
| `-._`-._  _.-'_.-' | 
    `-._ `-._`-.__.-'_.-' _.-' 
     `-._ `-.__.-' _.-' 
      `-._  _.-' 
       `-.__.-' 

... 
1:M 10 Sep 08:17:03.644 * The server is now ready to accept connections on port 6379 

그러나 스프링 부트 응용 프로그램에서 연결할 수 없습니다. application.properties

같은
spring.redis.host=localhost 
spring.redis.port=6379 

오류

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect 
    at redis.clients.jedis.Connection.connect(Connection.java:164) ~[jedis-2.8.2.jar:na] 
    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80) ~[jedis-2.8.2.jar:na] 
    at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1677) ~[jedis-2.8.2.jar:na] 
    at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:87) ~[jedis-2.8.2.jar:na] 
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868) ~[commons-pool2-2.4.2.jar:2.4.2] 
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) ~[commons-pool2-2.4.2.jar:2.4.2] 
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) ~[commons-pool2-2.4.2.jar:2.4.2] 
    at redis.clients.util.Pool.getResource(Pool.java:49) ~[jedis-2.8.2.jar:na] 
    ... 23 common frames omitted 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_45] 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_45] 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) ~[na:1.8.0_45] 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_45] 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_45] 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_45] 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_45] 
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_45] 
    at redis.clients.jedis.Connection.connect(Connection.java:158) ~[jedis-2.8.2.jar:na] 
    ... 30 common frames omitted 

node_redis 예와 Node.js를 사용하려고 시도하는, 을 가지고 사용하면 (코멘트에서) 언급 한 바와 같이 나는

Error Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 
+0

http://redis.io/topics/security 언급'보호 mode'를 사용할 수있다. 공용 도커 이미지에 redis를 사용할 준비가되어 있어야합니다. –

+0

그래도 작동시킬 수 있었습니까? – alexbt

+0

아니요. 극복 할 부분을 찾으면 답을 추가하겠습니다. –

답변

2

있어, 레디 스 protected-mode을 yes (see here)로 설정하여 이미지를 묶었습니다.

주위에 보호 모드를 이동하는 방법

  • 1) 그냥 동일한 호스트 서버에서 레디 스에 연결하여 루프백 인터페이스에서 보호 모드 명령을 보내는 '구성 SET 보호 모드 더'를 사용하지 않는다 그러나 Redis가 인터넷을 통해 공개적으로 액세스 할 수 없는지 확인하십시오. 이 변경을 영구히하려면 CONFIG REWRITE를 사용하십시오.
  • 2) 대신 Redis 구성 파일을 편집하고 보호 모드 옵션을 '아니요'로 설정 한 다음 서버를 다시 시작하여 보호 모드를 해제 할 수 있습니다.
  • 3) 테스트 용으로 수동으로 서버를 시작한 경우 '--protected-mode no'옵션으로 서버를 다시 시작하십시오.
  • 4) 바인드 주소 또는 인증 암호를 설정하십시오.

소스 : redis-github

당신은 레디 스의의를 당기고 이미지에 자신의 redis.conf을 추가하여 자신의 이미지를 만들 수

당신은 또한 (마지막 줄) 이상 제안 수정을 포함이 Dockerfile 좀 걸릴 수 있습니다 :

  • 또는 보호 모드를 해제하려면 Dockerfile에서 시작 명령을 업데이트

    이 Dockerfile은 Redis issue on github으로 제공되며 시작 명령을 CMD [ "redis-server", "--protected-mode", "no" ]으로 바꿉니다. 당신은 그냥이 Dockerfile를 다운로드하여 입력 할 수 있습니다 : 알렉스 응답과 코멘트에

    $ docker build -t redis-unprotected:latest . 
    $ docker run -p 6379:6379 redis-unprotected 
    
  • +0

    고마워, 제대로 된 것 같다. https://github.com/docker-library/redis/issues/74를 추가했습니다. –