Docker入門

Dockerの開発環境をローカル環境に構築する手順や、 Docker を使ったプログラムの記述方法や実行までをサンプルを使いながら順に学習していきます。

起動したコンテナとローカルPCでファイル送信をする【Docker】

解決策:

dockercpコマンドを使用することでコンテナとローカルPC間でファイルのコピーが可能です。

構文は以下の通り。

docker cp <ローカルファイルパス> <コンテナ名またはID>:<コンテナ内のディレクトリパス>

または、docker-composeでも同様の操作が可能

docker-compose cp <サービス名>:<ローカルファイルパス> <コンテナ内のディレクトリパス>

具体例:ubuntuコンテナで実践

コンテナ内部のファイルをローカルPCにコピー

次のコマンドでubuntuを360秒間だけ立ち上げ、bashでログインします。

docker run -d --name testcopy ubuntu:14.04 sleep 360
docker exec -it testcopy bash

コンテナ内部では次のコマンドを入力して、I am in the containerと書かれたfile.txtファイルを作成し、exitでコンテナを抜けます。

cd /root
echo 'I am in the container' > file.txt
exit

ここで作成したファイルをローカルにコピーしましょう。

docker cp testcopy:/root/file.txt .

このdocker cpコマンドでコンテナ名かコンテナIDとローカルファイルパスを指定することでコピーが可能です。

cat file.txt

実行結果

I am in the container

ローカルPCのファイルをコンテナ内部へコピー

反対に、ローカルPCのファイルをコンテナ内部へコピーする場合は先にファイル名を記述しましょう

echo 'I am in the host' > host.txt
docker cp host.txt testcopy:/root/host.txt