在 docker-compose 设置中调用 redis-cli
Calling redis-cli in docker-compose setup
我 运行 官方 Redis 图像 https://hub.docker.com/_/redis/ 在 docker-compose
设置中。
myredis:
image: redis
运行 redis-cli
和 docker 如何在该图像上合成?
我尝试了以下方法,但没有连接:
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
?
这将覆盖 the default CMD [ "redis-server" ]
:您正在尝试 运行 redis-cli
在从未执行 redis-server
的容器上。
As mentioned here,你也可以测试:
docker exec -it myredis redis-cli
来自 docker-compose,如前所述 in this docker/compose issue 2123:
rcli:
image: redis:latest
links:
- redis
command: >
sh -c 'redis-cli -h redis '
This should also works:
rcli:
image: redis:latest
links:
- redis
command: redis-cli -h redis
作为 OP ivoba confirms (),最后一种形式有效。
那么:
docker-compose run rcli
ivoba 还补充说:
docker-compose run redis redis-cli -h redis
works also when the containers are running.
This way its not necessary to declare a separate rcli
container.
你也可以使用这个命令:
docker-compose run myredis redis-cli -h myredis
我按照@VonC 的建议进行操作,但在我的例子中,我在预定义的网络上 运行 redis,所以它没有用。
所以在特定网络中的redis容器运行的情况下,network
字段应该在docker-compose.yaml文件
中指定
rcli:
image: redis:latest
links:
- redis
command: redis-cli -h redis
networks:
- <network redis run on>
我 运行 官方 Redis 图像 https://hub.docker.com/_/redis/ 在 docker-compose
设置中。
myredis:
image: redis
运行 redis-cli
和 docker 如何在该图像上合成?
我尝试了以下方法,但没有连接:
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
?
这将覆盖 the default CMD [ "redis-server" ]
:您正在尝试 运行 redis-cli
在从未执行 redis-server
的容器上。
As mentioned here,你也可以测试:
docker exec -it myredis redis-cli
来自 docker-compose,如前所述 in this docker/compose issue 2123:
rcli:
image: redis:latest
links:
- redis
command: >
sh -c 'redis-cli -h redis '
This should also works:
rcli:
image: redis:latest
links:
- redis
command: redis-cli -h redis
作为 OP ivoba confirms (
那么:
docker-compose run rcli
ivoba 还补充说:
docker-compose run redis redis-cli -h redis
works also when the containers are running.
This way its not necessary to declare a separatercli
container.
你也可以使用这个命令:
docker-compose run myredis redis-cli -h myredis
我按照@VonC 的建议进行操作,但在我的例子中,我在预定义的网络上 运行 redis,所以它没有用。
所以在特定网络中的redis容器运行的情况下,network
字段应该在docker-compose.yaml文件
rcli:
image: redis:latest
links:
- redis
command: redis-cli -h redis
networks:
- <network redis run on>