gpt4 book ai didi

docker - Redis docker,无法连接到redis-cli

转载 作者:行者123 更新时间:2023-12-02 18:13:28 27 4
gpt4 key购买 nike

我正在尝试使用持久性存储运行 redis。我关注了官方 docker page redis fo 安装。

我使用 -

docker pull redis

我使用持久性存储开始 redis -
docker run --name some-redis -d redis redis-server --appendonly yes

我正在尝试使用 redis cli 连接到 redis 实例 -
docker run -it --network some-network --rm redis redis-cli -h some-redis

它给了我以下错误 -

docker: Error response from daemon: network some-network not found.



我一直在关注文档,为什么这不起作用?

最佳答案

两个答案都提供了有趣的信息,但缺乏主要内容。
在 docker 中,容器可能会连接到某些网络。
默认情况下,如果您在运行容器时未指定任何网络,它将使用默认桥接网络:在该网络内,任何容器都可以与任何其他容器进行通信,但只能通过其 IP 地址进行通信。

1) 使用默认桥接网络

您无法通过容器名称在该网络的容器之间进行通信。
所以这里docker run -it --network some-network --rm redis redis-cli -h some-redis , some-redis部分不是可解析的主机名。

为了克服这个问题,您必须通过其 ip 地址来引用容器。
检查容器以了解:

docker container inspect some-redis | grep -i ipaddress

你应该得到类似的东西: "IPAddress": "172.17...."
现在将 ip 地址指定为 -h 参数,它应该没问题:
docker run -it --network some-network --rm redis redis-cli -h 172.17...

这真的不是使两个容器相互通信的网络/可重用/便携方式。那更适合做实验。

2)使用自定义桥接网络

您可以通过容器名称在该网络的容器之间进行通信。

创建您的网络:
docker network create redis-network

运行 redis 服务器并将其连接到该网络:
docker run --name some-redis -d --network redis-server redis redis-server --appendonly yes

运行 redis 客户端并将其连接到该网络:
docker run -it --rm --network redis-network redis redis-cli -h some-redis

现在客户端可以通过 -h some-redis 连接到服务器实例.

关于docker - Redis docker,无法连接到redis-cli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60375993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com