docker cp

コンテナ⇔ホストマシン間でのファイルコピーコマンド

ホスト → コンテナ

ホストマシン側にファイルを作成
  1. ターミナルで下記コマンドを実行
    cat docker_test/cp_test.txt
    ※ここでは “docker_test” フォルダ内に “cp_test.txt” ファイルを作成
CentOS のコンテナを起動
  1. ターミナルで下記コマンドを実行
    docker start my_centos
docker cp コマンド実行
  1. ターミナルで下記コマンドを実行
    docker cp docker_test/cp_test.txt my_centos:/opt
    ※ここでは、名前指定で “my_centos” としています
  • docker cp { ホスト側のファイルパス(コピー元) } { コンテナID or 名前 }:{ コンテナ側のファイルパス(コピー先) }
確認
  1. 確認のためコンテナ(my_centos) 内に入る
    docker exec -it my_centos /bin/bash
  2. コピーしたファイルを確認
    cat /opt/cp_test.txt
  • “docker cp test” と表示され、STEP.1 で作成した内容と同じであることが確認できる

コンテナ → ホスト

コンテナ側にファイルを作成
  1. ターミナルで下記コマンドを実行
    vi /opt/cp_test_from_container.txt
    ※ここでは “opt” ディレクトリ内に “cp_test_from_container.txt” ファイルを作成
    ※vi コマンドについては “docker build” 参照
  2. 作成したファイルの内容を確認
    cat opt/cp_test_from_container.txt
  3. コンテナから出る
    exit
    ※”docker cp” コマンドはホスト側で実行するため、1度コンテナから出る
docker cp コマンド実行
  1. ターミナルで下記コマンドを実行
    docker cp my_centos:/opt/cp_test_from_container.txt docker_test/
    ※ここでは、名前指定で “my_centos” としています
  • docker cp { コンテナID or 名前 }:{ コンテナ側のファイルパス(コピー元) } { ホスト側のフォルダパス(コピー先) }
確認
  1. ターミナルで下記コマンドを実行
    cat docker_test/cp_test_from_container.txt
  • “docker cp test from container” と表示され、STEP.1 で作成した内容と同じであることが確認できる