ユーザーのローカルファイルC:/ users/saad/bddからdockerコンテナー(cassandra)にデータファイルをインポートする必要がありますが、dockerコマンドを使用して続行する方法が見つかりませんでした。私はWindows 7で作業しています。
助けてくれて本当にありがとうございます
つかいます docker cp
。
docker cp c:\path\to\local\file container_name:/path/to/target/dir/
コンテナの名前がわからない場合は、次を使用して検索できます。
docker ps --format "{{.Names}}"
Dockerツールボックスを使用する場合、絶対パスに関連する別の問題があるようです。
私は、本質的にMINGW64環境である「Docker Quickstart Teminal」を使用してコンテナーと通信しています。
コンテナへの絶対パスでファイルをコピーしようとすると、エラーメッセージが表示されます。
$ docker cp /d/Temp/my-super-file.txt container-name:/tmp/
copying between containers is not supported
相対パスを使用する場合は、単に機能します。
$ cd /d/
$ docker cp Temp/my-super-file.txt container-name:/tmp/
追伸:コメントに対する評判が失われているため、これを回答として投稿しています。
ドッカーツールボックスを使用する場合、それほど単純ではありません。 DockerツールボックスはC:\Users\
フォルダーのみにアクセスでき、間にOracle Virtual Box Managerがあるため、フォルダーをコピーすると、コンテナーに直接コピーされるのではなく、Oracleによってマウントされたボリュームハンドルにコピーされます= VM machine。そのように:
/mnt/sda1/var/lib/docker/volumes/19b65e5d9f607607441818d3923e5133c9a96cc91206be1239059400fa317611/_data
これを回避する方法は、単にDockerFileを編集することです。
FROM cassandra:latest
ADD cassandra.yml /etc/cassandra/
ADD import.csv /var/lib/cassandra/
EXPOSE 9042
そしてそれを構築します。
Windowsでdocker-toolboxを使用している場合は、次の構文を使用します
docker cp/C/Users/Saad/bdd-restaurants cassandra:/ var/lib/docker/containers
ここにちょうどそれをタイプする答えがあります
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
94ef16fa1d18 tensorflow/tensorflow "/run_jupyter.sh --a…" 2 days ago Up 2 days 6006/tcp, 0.0.0.0:8888->8888/tcp adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps --format "{{.Names}}"
adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker cp ~/Documents/dead-exorcist/satan_ml/satan_ml.tar.gz adoring_engelbart:/notebooks
belzebub-system:~/Documents/dead-exorcist/satan_ml$
このコマンドを使用すると、ホストマシンからdocker containerにファイルをコピーできます。
docker cp c:\abc.doc <containerid> :C:\inetpub\wwwroot\abc.doc