如何通过CLI连接到Docker容器中运行的Redis

2024-06-25 23:22:31 发布

您现在位置:Python中文网/ 问答频道 /正文

docker撰写

web:
  container_name: authserver
  restart: always
  build: ./authserver
  expose:
    - "8000"
  links:
    - redis:redis
  environment:
    DEBUG: 'true'

redis:
  restart: always
  image: redis:latest
  ports:
    - "6379:6379"

docker检查authserver_redis_1

^{pr2}$

从主机上的Python解释器(意思是在我运行docker compose本身的地方),我可以使用Redis和get/set值

client = redis.StrictRedis(host='172.17.0.3', port=6379, db=0)

client.set("key01", "value01")
print client.get("key01")
>>>>"value01"

我遇到的问题是如果我从命令行运行redis cli

redis-cli -h 172.17.0.3 -p 6379

在同一台主机上(在同一台机器上与Python解释器交互),然后运行HGETALL*,我希望返回key01和value01,但是它返回

(empty list or set)

我很难理解rediscli和pythonredis库文档,所以我猜我做错了一些事情。在


Tags: dockernameredisclientwebgetclicontainer
1条回答
网友
1楼 · 发布于 2024-06-25 23:22:31
ports:
    - "6379:6379"

这会将redis从容器转发到您的主机,因此您应该能够连接到localhost,就像redis直接运行您的机器一样。如果这不起作用,你可以通过跑步进行更多挖掘

^{pr2}$

获取正在运行的容器ID的列表,然后

docker exec -it <redis container ID> redis-cli

直接连接到redis容器并运行redis cli。在

相关问题 更多 >