docker cp コマンドでコンテナにファイルをコピーする

docker cp コマンドでコンテナにファイルをコピーする

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

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