在docker-compose设置中调用redis-cli [英] Calling redis-cli in docker-compose setup
问题描述
我运行官方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 separatercli
container.
这篇关于在docker-compose设置中调用redis-cli的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!