2017-02-21 57 views
0
在泊坞窗容器中运行Redis的

泊坞窗,构成如何连接到通过CLI

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" 

搬运工检查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-意思组成自己)我可以玩Redis和获得/设置值

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

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

问题我'具有m个是,如果我请从(我与Python解释相互作用在相同的机器),然后运行HGETALL *相同的主机上的命令行

redis-cli -h 172.17.0.3 -p 6379 

redis的-CLI,我期望有key01和value01返回,而是返回

(empty list or set) 

我有以下两个Redis的-CLI和Python的Redis库文档很难,所以我猜我做事情有些不对劲。

+0

尝试不使用-h 172.17.0.3部分......除非通过虚拟环境将其推送到网页,否则我不需要主机。端口和数据库应该足够了......还要确保默认值实际上是db = 0,或者它可能会给你正确的答案......如果你将数据保存到db = 0并且现在要求从另一个返回。 Redis带有16个数据库频道,因此您需要确保您要求从正确的一个... – sconfluentus

回答

0
ports: 
    - "6379:6379" 

这从容器到你的主机转发Redis的,所以你只要能够连接到本地主机仿佛Redis的直接您的计算机上运行。如果这不起作用,你可以做更多通过运行

docker ps 

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

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

直接连接到您的Redis的容器和redis-运行CLI。