【发布时间】:2021-12-06 05:08:04
【问题描述】:
我正在尝试创建一个简单的脚本:
- 连接到 docker 容器的 BASH shell
- 进入redis-cli
- 在redis-cli中执行
flushall命令
到目前为止,我的docker_script.sh 中有这个(这基本上复制了手动程序):
docker exec -it redis /bin/bash
redis-cli
flushall
但是,当我运行它时,它只连接到容器的 BASH shell,并没有做任何其他事情。然后,如果我在容器的 BASH shell 中输入 exit,它会输出:
root@5ce358657ee4:/data# exit
exit
./docker_script.sh: line 2: redis-cli: command not found
./docker_script.sh: line 3: keys: command not found
当我手动执行相同的过程时,如果命令 redis-cli 和 flushall 存在并且正在容器中工作,为什么会出现 command not found?如何通过创建这么小的 BASH 脚本来“自动化”它?
谢谢
【问题讨论】:
-
您需要
docker exec步骤还是中间shell;你能从主机运行redis-cli,连接到容器的发布端口吗?