Не удалось подключиться к отдельному Docker-контейнеру с Redis - PullRequest
1 голос
/ 15 мая 2019

У меня есть redis, выставленный через контейнер:

service_redis 0.0.0.0:6379->6379/tcp

И я даже могу подключиться к нему с помощью команды redis-cli с. Но что я на самом деле не могу сделать, так это подключиться через код Go (который также существует в отдельном контейнере, кстати)

Вот как выглядит мой клиент:

opts := &redis.Options{
    Addr: addr,
    Password: pass,
    DB: db,
}


cli := redis.NewClient(opts)
fmt.Println(master.Ping().Err())
fmt.Println(slave.Get("REAL_KEY").String())

Я пытался вставить в переменную addr следующее:

  1. 0.0.0.0:6379 И 127.0.0.1:6379. Ответ был, например ::
<nil>
get REAL KEY: dial tcp 0.0.0.0:6379: connect: connection refused
  1. service_redis:6379 со следующим ответом:

<nil>
get REAL KEY: dial tcp: lookup service_redis on 169.254.169.254:53: no such host

Как мне решить проблему и что я не так сделал?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Кубернетес сделает открытие простым.Я написал репликацию redis и перешел через конфигурацию k8s с read write в go to redis. чек https://github.com/kubesure/premium

0 голосов
/ 15 мая 2019

Вы можете использовать что-то вроде этого

docker-compose.yaml

web:
    build: .
    working_dir: /go/src
    ports:
     - "5000:5000"
    volumes:
     - .:/go/src
    links:
     - db
db:
    image: redis
    ports:
     - "6379:6379"

Это создает связь между вашими контейнерами, чтобы они могли общаться друг с другом.Если вы не хотите использовать docker-compose.yaml, тогда вы можете использовать флаг --link при создании изображения

...