【问题标题】:Calling redis-cli in docker-compose setup在 docker-compose 设置中调用 redis-cli
【发布时间】:2015-10-23 14:07:53
【问题描述】:

我在 docker-compose 设置中运行官方 Redis 映像 https://hub.docker.com/_/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

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    这将覆盖the default CMD [ "redis-server" ]:您正尝试在从未执行过redis-server 的容器上运行redis-cli

    As mentioned here,你也可以用:

    docker exec -it myredis redis-cli
    

    来自 docker-compose,如上所述 in this docker/compose issue 2123

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

    这也应该有效:

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

    OP ivoba 确认 (in the comments),最后一种形式有效。
    那么:

    docker-compose run rcli
    

    ivoba 还补充道:

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

    【讨论】:

    • 太棒了!作品。我采用了最后一种方法并运行它: docker-compose run rcli
    • @ivoba 太棒了!我已将您的评论包含在答案中以提高知名度。
    • 'docker-compose run redis redis-cli -h redis' 在容器运行时也有效。这样就不需要声明一个单独的 rcli 容器。
    • @ivoba 好的。我再次将您的评论包含在答案中以提高知名度。
    • docker-compose run redis redis-cli -h redis 给了我一个Could not connect to Redis at redis:6379: Try again :/ 容器运行时也会发生这种情况。编辑:rcli 的解决方案可以工作。我想这与网络有关。
    【解决方案2】:

    你也可以使用这个命令:

    docker-compose run myredis redis-cli -h myredis
    

    【讨论】:

    • 这在上面的答案中已经说过了,只是名称不同
    【解决方案3】:

    我按照@VonC 的建议进行操作,但在我的情况下,我在预定义的网络上运行 redis,所以它不起作用。

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

    rcli:
      image: redis:latest
      links:
        - redis
      command: redis-cli -h redis
      networks: 
        - <network redis run on>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2019-07-19
      • 2020-09-12
      • 2018-08-11
      • 2021-07-09
      相关资源
      最近更新 更多