是否可以将 CQL 命令的本地文件传递给 Cassandra Docker 容器?
使用 docker exec
失败,因为它找不到本地文件:
me@meanwhileinhell:~$ ls -al
-rw-r--r-- 1 me me 1672 Sep 28 11:02 createTables.cql
me@meanwhileinhell:~$ docker exec -i cassandra_1 cqlsh -f createTables.cql
Can't open 'createTables.cql': [Errno 2] No such file or directory: ‘createTables.cql'
我真的不想打开 bash session 并以这种方式运行脚本。
最佳答案
容器需要先能够访问脚本,然后才能执行它(即脚本文件需要在容器内)。如果这只是脚本的一次性快速运行,最简单的方法可能是使用 docker cp
命令将脚本从主机复制到容器:
$ docker cp createTables.cql container_name:/path/in/container
然后,您应该能够使用
docker exec
在您将其复制到容器内的任何路径上运行脚本。如果这是一项正在进行的工作,并且您可能在处理脚本时更改并重新运行脚本,则最好从容器内的主机安装一个包含脚本的目录。为此,您可能需要 -v
的 docker run
选项。希望有帮助!
关于docker - 将本地 CQL 命令文件传递给 Cassandra Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47205466/