ivo*_*oba 22 docker docker-compose
我在设置中运行官方Redis图像https://hub.docker.com/_/redis/docker-compose.
myredis:
image: redis
Run Code Online (Sandbox Code Playgroud)
如何redis-cli在该图像上使用docker-compose 运行?
我尝试了以下,但它没有连接:
docker-compose run myredis redis-cli
> Could not connect to Redis at 127.0.0.1:6379: Connection refuse
Run Code Online (Sandbox Code Playgroud)
图像的文档说我应该运行:
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"'
Run Code Online (Sandbox Code Playgroud)
这如何转化为docker-compose run?
Von*_*onC 45
这将覆盖默认值CMD [ "redis-server" ]:您尝试在从未执行redis-cli过的容器上运行redis-server.
如前所述,您还可以测试:
docker exec -it myredis redis-cli
Run Code Online (Sandbox Code Playgroud)
来自docker-compose,如此docker/compose issue 2123中所述:
rcli:
image: redis:latest
links:
- redis
command: >
sh -c 'redis-cli -h redis '
Run Code Online (Sandbox Code Playgroud)
这也应该有效:
rcli:
image: redis:latest
links:
- redis
command: redis-cli -h redis
Run Code Online (Sandbox Code Playgroud)
正如OP ivoba确认(在评论中),最后一种形式有效.
然后:
docker-compose run rcli
Run Code Online (Sandbox Code Playgroud)
ivoba还补充说:
docker-compose run redis redis-cli -h redis当容器运行时也可以工作.
这样就没有必要声明一个单独的rcli容器.
您也可以使用以下命令:
docker-compose run myredis redis-cli -h myredis
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19825 次 |
| 最近记录: |