首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >红系对接者,不能连接红系

红系对接者,不能连接红系
EN

Stack Overflow用户
提问于 2020-02-24 12:29:09
回答 3查看 2.3K关注 0票数 4

我正在尝试使用持久化存储运行redis。我跟随官方的页面进行安装。

我用-

代码语言:javascript
运行
复制
docker pull redis

我从持久化存储开始使用-

代码语言:javascript
运行
复制
docker run --name some-redis -d redis redis-server --appendonly yes

我试着用redis cli连接到redis实例-

代码语言:javascript
运行
复制
docker run -it --network some-network --rm redis redis-cli -h some-redis

它给了我以下的错误-

docker:来自守护进程的错误响应:网络某些-没有找到网络。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-24 13:32:29

这两个答案都给出了有趣的信息,但缺乏主要内容。

在码头,集装箱可能连接到某些网络。

默认情况下,如果在运行容器时不指定任何网络,它将使用默认的网桥网络:在该网络中,任何容器都可以与任何其他容器通信,但只能通过它们的ip地址进行通信。

  1. 使用默认的桥接网络

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

所以在这里docker run -it --network some-network --rm redis redis-cli -h some-redissome-redis部件不是一个可解析的主机名。

要克服这个问题,您必须通过它的ip地址来引用容器。

检查容器,以了解:

代码语言:javascript
运行
复制
docker container inspect some-redis | grep -i ipaddress

你应该得到这样的信息:"IPAddress": "172.17...."

现在将ip地址指定为-h参数,它应该很好:

代码语言:javascript
运行
复制
docker run -it --network some-network --rm redis redis-cli -h 172.17...

这实际上不是一种使两个容器相互通信的网络/可重用/可移植的方式。这更适合做实验。

  1. 有一个自定义的桥梁网络

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

创建您的网络:

代码语言:javascript
运行
复制
docker network create redis-network

运行redis服务器并将其连接到该网络:

代码语言:javascript
运行
复制
docker run --name some-redis -d --network redis-network redis redis-server --appendonly yes

运行redis客户端并将其连接到该网络:

代码语言:javascript
运行
复制
docker run -it --rm --network redis-network redis redis-cli -h some-redis

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

票数 4
EN

Stack Overflow用户

发布于 2020-02-24 12:42:31

首先创建网络

代码语言:javascript
运行
复制
docker network create some-network

然后在所有必须使用网络的容器中使用它。

代码语言:javascript
运行
复制
docker run --network some-network

当您完成删除网络。

代码语言:javascript
运行
复制
docker network rm some-network
票数 1
EN

Stack Overflow用户

发布于 2020-02-24 12:54:01

首先,此命令以redis-server的形式运行。

代码语言:javascript
运行
复制
docker run --name some-redis -d redis redis-server --appendonly yes

接下来,要运行redis-cli连接redis-server应该是附加redis-server容器并运行redis-cli。

代码语言:javascript
运行
复制
docker exec -it some-redis redis-cli -h

当然,如果您希望像redis页面一样通过网络访问,则需要将cli容器的网络附加到redis-server容器以共享网络。

代码语言:javascript
运行
复制
docker run --rm -it --net=container:some-redis  redis redis-cli -h
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60375993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档