一尘不染

在docker-compose设置中调用redis-cli

docker

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

myredis:
  image: redis

如何redis-cli在该图像上使用docker-compose 运行?
我尝试了以下操作,但未连接:

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什么意思?


阅读 819

收藏
2020-06-17

共1个答案

一尘不染

那会覆盖默认值CMD [ "redis-server" ]:您试图在从未执行redis- cli过的容器上运行redis-server

如此处所述,您还可以使用以下方法进行测试:

docker exec -it myredis redis-cli

这个docker /
compose问题2123
所述从docker-
compose :

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

这也应该起作用:

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

正如OPivoba确认的那样,最后一种形式有效。
然后:

docker-compose run rcli

ivoba还添加:

docker-compose run redis redis-cli -h redis在容器运行时也可以工作。
这样就不必声明一个单独的rcli容器。

2020-06-17