码头工人组成
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"
Run Code Online (Sandbox Code Playgroud)
码头工人检查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"
Run Code Online (Sandbox Code Playgroud)
从主机上的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"
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,如果我从命令行运行redis-cli
redis-cli -h 172.17.0.3 -p 6379
Run Code Online (Sandbox Code Playgroud)
在同一台主机上(与Python解释器进行交互的同一台机器上),然后运行HGETALL *,我希望返回key01和value01,但是它将返回
(empty list or set)
Run Code Online (Sandbox Code Playgroud)
我在阅读redis-cli和python redis库文档时都遇到了麻烦,所以我猜我做错了一些事情。
ports:
- "6379:6379"
Run Code Online (Sandbox Code Playgroud)
这会将redis从容器转发到您的主机,因此您应该能够连接到localhost,就好像redis直接在运行您的计算机一样。如果这不起作用,您可以通过运行更多挖掘
docker ps
Run Code Online (Sandbox Code Playgroud)
获取正在运行的容器ID的列表,然后
docker exec -it <redis container ID> redis-cli
Run Code Online (Sandbox Code Playgroud)
直接连接到您的redis容器并运行redis-cli。
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |