起動中の Docker コンテナにファイルを転送する / コンテナからファイルをダウンロードする

ポケットモンスター アップロード / ダウンロード (何)

Docker コンテナ起動時に -v オプションを指定すれば、ホスト OS との共有ディレクトリを設定することはできる。

今回はそうではなく、既に起動されている Docker コンテナにホスト OS からファイルを送ったり、逆に Docker コンテナからホスト OS に向けてファイルを送ってもらったりする手順を紹介する。

目次

docker cp コマンド

ファイル転送に使用するのは、ホスト → コンテナ、コンテナ → ホスト、どちらの場合も docker cp コマンドだ。

起動中のコンテナの ID を知っておく必要があるので、$ docker ps コマンドで CONTAINER ID を確認しておこう。

ホスト OS から Docker コンテナにファイルを送る

ホスト OS から Docker コンテナにファイルを送るには、以下のように書く。

$ docker cp 【ホスト OS のファイル】 【コンテナ ID】:【転送先のフルパス】

例えばこんな感じ。

$ docker cp ./my-host-os-file.txt 00x000xxx000:/tmp

コレで、Docker コンテナ内に /tmp/my-host-os-file.txt が置かれる。

以下のようにファイル名を指定すれば、転送先でファイル名の変更もできる。

$ docker cp ./my-host-os-file.txt 00x000xxx000:/tmp/my-container-file.txt

Docker コンテナからホスト OS にファイルを送らせる

逆に、Docker コンテナ内のファイルを受け取るには、docker cp コマンドの順序を逆にすれば良い。

# docker cp 【送るファイルのパス】 【送り先パス】 という書き順

$ docker cp 【コンテナ ID】:【転送するファイルのフルパス】 【ホスト OS のダウンロード先】

実際にダウンロードするにはこんな感じ。

$ docker cp 00x000xxx000:/tmp/my-container-file.txt ./

一度覚えれば簡単っすね。