搬运工-撰写
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 inspect authserver_redis_1
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03"
从主机上的Python解释器(意思是我运行docker-compose本身)我可以使用Redis来获取/设置值
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)
我很难跟踪redis-cli和python redis库文档,所以我猜我做错了。
答案 0 :(得分:2)
from io import StringIO
import pandas as pd
mycsv = """a{0}b{0}c
d{0}e{0}f""".format(chr(1))
pd.read_csv(StringIO(mycsv), sep=chr(1))
a b c
0 d e f
这会将redis从容器转发到您的主机,因此您应该能够连接到localhost,就好像redis直接在您的计算机上运行一样。如果这不起作用,您可以通过运行
进行更多挖掘ports:
- "6379:6379"
获取正在运行的容器ID列表,然后
docker ps
直接连接到您的redis容器并运行redis-cli。