簡體   English   中英

將本地CQL命令文件傳遞給Cassandra Docker容器

[英]Passing local CQL commands file to Cassandra Docker container

是否可以將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會話並以這種方式運行腳本。

容器需要能夠在執行之前首先訪問腳本(即腳本文件需要位於容器內)。 如果這只是腳本的快速一次性運行,最簡單的方法是使用docker cp命令將腳本從主機復制到容器:

$ docker cp createTables.cql container_name:/path/in/container

然后,您應該能夠使用docker exec在您將其復制到容器內的任何路徑上運行腳本。 如果這是一項正在進行中的工作,並且您在處理腳本時可能正在更改並重新運行腳本,那么最好不要在主機內部使用腳本安裝腳本。 為此你可能想要docker run-v選項。

希望有所幫助!

如果您希望docker容器在主機系統中看到文件,唯一的方法是映射卷。 您可以將當前目錄映射到/ tmp並再次運行命令docker exec -i cassandra_1 cqlsh -f /tmp/createTables.cql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM