我在设置中运行官方Redis镜像https://hub.docker.com/_/redis/docker- compose。
docker- compose
myredis: image: redis
如何redis-cli在该图像上使用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-compose run
那会覆盖默认值CMD [ "redis-server" ]:您试图在从未执行redis- cli过的容器上运行redis-server。
CMD [ "redis-server" ]
redis- cli
redis-server
如此处所述,您还可以使用以下方法进行测试:
docker exec -it myredis redis-cli
如这个docker / compose问题2123所述,从docker- compose :
rcli: image: redis:latest links: - redis command: > sh -c 'redis-cli -h redis '
这也应该起作用:
rcli: image: redis:latest links: - redis command: redis-cli -h redis
正如OPivoba确认的那样,最后一种形式有效。 然后:
docker-compose run rcli
ivoba还添加:
docker-compose run redis redis-cli -h redis在容器运行时也可以工作。 这样就不必声明一个单独的rcli容器。
docker-compose run redis redis-cli -h redis
rcli