在docker-compose设置中调用redis-cli [英] Calling redis-cli in docker-compose setup

查看:330
本文介绍了在docker-compose设置中调用redis-cli的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我运行官方Redis映像 https://hub.docker.com/_/redis/ docker-compose 设置中。

I run the official Redis image https://hub.docker.com/_/redis/ in a docker-compose setup.

myredis:
  image: redis

如何使用docker-compose在该映像上运行 redis-cli

我尝试了以下操作,但未连接:

How can run redis-cli with docker-compose on that image?
I tried the following, but it didn't connect:

docker-compose run myredis redis-cli
> Could not connect to Redis at 127.0.0.1:6379: Connection refuse

图片的文档显示我应该运行:

The docs of the image says that I should run:

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

推荐答案

这将覆盖默认 CMD [ redis-server] :您尝试在容器中运行 redis-cli redis服务器从未执行过。

That would override the default CMD [ "redis-server" ]: you are trying to run redis-cli on a container where the redis-server was never executed.

如此处所述,您还可以测试:

docker exec -it myredis redis-cli

来自docker-compose,如前所述在此docker / compose问题2123中

From docker-compose, as mentioned in this docker/compose issue 2123:

rcli:
  image: redis:latest
  links:
    - redis
  command: >
     sh -c 'redis-cli -h redis '




这也应该起作用:

This should also works:



rcli:
  image: redis:latest
  links:
    - redis
  command: redis-cli -h redis

OP ivoba 确认(在评论中),最后一种形式有效。

然后:

As the OP ivoba confirms (in the comments), the last form works.
Then:

docker-compose run rcli

ivoba还添加:


docker-compose run redis redis-cli -h redis 在容器运行时也起作用。

这样,不必声明单独的 rcli 容器。

docker-compose run redis redis-cli -h redis works also when the containers are running.
This way its not necessary to declare a separate rcli container.

这篇关于在docker-compose设置中调用redis-cli的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆