在docker compose安装程序中调用redis cli

在docker compose安装程序中调用redis cli,docker,docker-compose,Docker,Docker Compose,我在docker compose设置中运行官方Redis图像 myredis: image: redis 如何在该映像上使用docker compose运行redis cli 我尝试了以下操作,但无法连接: docker-compose run myredis redis-cli > Could not connect to Redis at 127.0.0.1:6379: Connection refuse 图像的文档说明我应该运行: docker run -it --rm \

我在docker compose设置中运行官方Redis图像

myredis:
  image: redis
如何在该映像上使用docker compose运行redis cli 我尝试了以下操作,但无法连接:

docker-compose run myredis redis-cli
> Could not connect to Redis at 127.0.0.1:6379: Connection refuse
图像的文档说明我应该运行:

docker run -it --rm \
--link some-redis:redis \
redis \
sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
这如何转化为docker compose run?

将覆盖:您试图在从未执行过redis服务器的容器上运行redis cli

,您还可以使用以下工具进行测试:

docker exec -it myredis redis-cli
来自docker compose,如上所述:

这也应该起作用:

如表()所示,最后一个表单有效。
然后:

ivoba还补充说:


docker compose run redis redis cli-h redis
在容器运行时也起作用。
这样就不必声明单独的
rcli
容器


您还可以使用以下命令:

docker-compose run myredis redis-cli -h myredis

我按照@VonC的建议操作,但在我的例子中,我在预定义的网络上运行redis,所以它不起作用

因此,在redis容器在特定网络中运行的情况下,应该在docker-compose.yaml文件中指定
网络
字段

rcli:
  image: redis:latest
  links:
    - redis
  command: redis-cli -h redis
  networks: 
    - <network redis run on>
rcli:
图片:redis:最新版本
链接:
-雷迪斯
命令:rediscli-h redis
网络:
- 

太棒了!作品我采用了最后一种方法并使用:docker compose run运行它rcli@ivoba杰出的我在回答中加入了您的评论,以提高可视性。“docker-compose运行redis-redis cli-h redis”在容器运行时也有效。这样就不必声明单独的rcli容器了。@ivoba OK。我再次在回答中加入了您的评论以提高可视性。
docker compose run redis redis cli-h redis
给了我一个
无法连接到redis at redis:6379:重试的问题。:/container运行时也会发生这种情况。编辑:使用
rcli
的解决方案仍然有效。我想这与网络有关。上面的答案中已经用了不同的名字
docker-compose run rcli
docker-compose run myredis redis-cli -h myredis
rcli:
  image: redis:latest
  links:
    - redis
  command: redis-cli -h redis
  networks: 
    - <network redis run on>