gpt4 book ai didi

docker - 在 Docker 容器中访问 Redis CLI

转载 作者:IT王子 更新时间:2023-10-29 06:10:36 25 4
gpt4 key购买 nike

我在 docker container 中运行了 Redis .

docker run --rm -d --name "my_redis"redis

我想通过 CLI 访问它:

如果我运行 docker exec -it my_redis redis-cli 控制台变得无响应,直到我离开容器(Ctrl + P,Ctrl + Q)

C:\Users\Andrzej>docker exec -it my_redis redis-cli
// nothing here until I go Ctrl + P, Ctrl + Q
exec attach failed: error on attach stdin: read escape sequence
C:\Users\Andrzej>

如果我运行 docker exec -it my_redis sh 然后从容器内部运行 redis-cli 它会工作。

C:\Users\Andrzej>docker exec -it my_redis sh
# redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379>

我的操作系统是 Windows 10。

有什么方法可以修复 docker exec -it my_redis redis-cli 行为吗?

更新

当控制台没有响应时,我准确地点击“向上箭头”键 11 次,我得到了 Redis cli。这是 100% 可重现的。这是什么巫术?

最佳答案

以分离模式运行 redis 容器:

docker run -d redis

在上面运行 redis-cli:

docker exec -it e0c061a5700bfa400f8f24b redis-cli

其中 e0c061a5700bfa400f8f24b 是容器的 ID。

根据文档:

Detached (-d)

To start a container in detached mode, you use -d=true or just -d option. By design, containers started in detached mode exit when the root process used to run the container exits, unless you also specify the --rm option. If you use -d with --rm, the container is removed when it exits or when the daemon exits, whichever happens first.

.

--interactive , -i Keep STDIN open even if not attached

--tty , -t Allocate a pseudo-TTY

关于docker - 在 Docker 容器中访问 Redis CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com