2016-08-09 6 views
0

ドッキング・コンテナ内のコマンドを実行してファイルをローカル・マシンにコピーすることは可能ですか?私はdocker cp <containerId>:container/file/path /host/file/pathを認識しています。しかし、私の理解は、これがドッカーコンテナの外側から実行されなければならないということです。それを行う方法やそこから似たようなものがありますか?ドッキング・コンテナからローカル・マシンにファイルをコピーする

私はいくつかの文脈のために、次のコマンドdocker run -ti -rm --net=host buildServer:5000/myProgram /myProgram.py -hのようなものでドッカーコンテナの内部で実行されるpythonスクリプトを持っています。このプログラムから生成されたファイルを取得して編集できるようにしたいと思います。ドッキングモードでドッキングコンテナを実行すると、docker cpのファイルとコンテナをシャットダウンできます。しかし、私はこれをユーザーから抽象化できるようにしたいと考えています。

答えて

0

ドッカーコンテナデザインでは、ボリュームマウントによって明示的に指定しない限り、ホストファイルシステムへのアクセス権を持ちません。だから、あなたの例では、次のような何かを行うことができます:

docker run -ti -v /tmp/data:/data -rm --net=host buildServer:5000/myProgram /myProgram.py -h 

そして、容器内に、/dataディレクトリは、ホスト上の/tmp/dataにマップされます。その後、ファイルを/dataにコピーして、あなたのホスト上でそれらを取得することができます。

これは、Linux上でDockerを実行していることを前提としています。 WindowsやOS Xを使用している場合は、DockerがLinux仮想マシン上で実際に動作しているため、ボリュームアクセスが期待どおりに動作しない場合があります(私はこれらのプラットフォームを使用しないため、正式にコメントしてください)。詳細については

関連する問題