Не удается подключиться к Redis из другого контейнера докера - PullRequest
0 голосов
/ 03 сентября 2018

в настоящее время у меня есть один персональный образ докера, загруженный в DockerHub, я делаю изменения, чтобы подключить это приложение к Redis (который также работает в другом контейнере Docker)

Теперь у меня появляется следующее сообщение из моего приложения, когда оно пытается подключиться к redis:

 Error saving to redis: dial tcp 127.0.0.1:6379: connect: connection refused

Я понимаю, что они не находятся в одной сети, поэтому мое приложение указывает на 127.0.0.1:6379, которое ничего не выполняет, поэтому я ищу лучший способ подключения этих контейнеров каким-либо образом сделать мое приложение зависящим от IP-адреса, на котором размещен redis, с моей локальной машины я могу использовать redis, но не из другого контейнера докера. Вкратце, то, что я сделал, было:

docker run --name redis_server -p 6379:6379 -d redis
sudo docker run -d --restart=always -p 10000:10000 --link redis_server:redis --name my_app repo/my_app

Итак, я ищу решения о том, как сделать 127.0.0.1:6379 доступным для my_app. Кстати, я не использую docker-compose

1 Ответ

0 голосов
/ 03 сентября 2018

Самым простым решением было бы запустить Docker с "--network = host", который связывает контейнеры с сетью хоста. Это идеальное решение для тестирования, однако оно будет предоставлять порты и службы соответственно Интернету (если у вас нет брандмауэра), который может быть или не быть безопасным.

Другой способ сделать это - определить сеть следующим образом:

docker network create -d bridge my-net

А затем запустить ваши контейнеры в той же сети, выполнив команду docker run с --network=my-net. Таким образом, вы можете ссылаться на каждый контейнер по его имени. Например, в вашем случае вы можете ping my_app из контейнера Redis и наоборот.

...