t8.dev

🇺🇸

DockerfileのCOPYでファイルやディレクトリごとコンテナにコピーする

公開日:2021/03/11
更新日:2021/08/22

Dockerfileでファイルやディレクトリごとコンテナにコピーしたい

心理学を使ったTODOアプリを開発している、@takasqrです。

心理学を使ったTODOアプリ | todo8

心理学を使ったTODOアプリ | todo8

今回は、ホスト側からコンテナにファイルやディレクトリをそのままコピーして転送する方法を紹介します。

ADDとCOPYという2つのコマンド

Dockerfileには親のOSからコンテナにファイルを送るコマンドが2種類あります。 それがADDとCOPYというコマンドです。

COPYはファイルをコンテナの中にコピーするだけですが、ADDはtarファイルの展開機能もあります。なのでファイルをコピーするだけならCOPYを使用した方が、コードの意味が推測しやすくなるので推奨されているようです。

今回はCOPYの使用方法を紹介します。

開発環境

Docker version 18.06.1-ce

1つのファイルをコピーする

ます、Dockerfileがあるディレクトリの中にコピーしたいファイルを配置します。

その上でDockerfileに記述します。

COPY test.sh /home/test-user/

このような形で送りたいファイルの後に送りたいコンテナの中のパスをします。 例では、test.shというファイルをコンテナの/home/test-user/というディレクトリの中に配置するコードです。

ディレクトリごとコピーする

ディレクトリの中を全部コンテナの中にコピーしたい場合は、

COPY test/ /home/test-user/test/

のようにファイルではなく、フォルダを指定するとできます。 例では、testというディレクトリをコンテナの/home/test-user/というディレクトリの中に配置するコードです。

さいごに

コンテナにコピーしたいファイルが複数ある場合は、ファイルではなくディレクトリごと指定する方が効率的にDockerfileを記述することができます。

Dockerfile リファレンス | Docker ドキュメント日本語化プロジェクト

関連記事

Dockerのcpでホストとコンテナ間でのファイルコピー
【dockerfile】echoを使ってテキストファイルに複数行追記する
dockerfileのenvを使って環境変数を渡す【ARGとの違いも説明する】
WordPress用のmysql(5.7)をdockerfileで作る
Postgres SQLのdockerfileを作る
sqlserverのdockerfileを作る
Docker execでコンテナ外からコマンドを実行する
Dockerのイメージ一覧をコマンドで表示する【images】
Dockerのコンテナが起動しない時に見るページ
DockerのpsでCOMMANDを省略しないで表示する
Dockerで不要になったimageやcontainerを一括削除【system prune】

オススメ記事

5年間ほぼ毎日プログラミングの勉強をするためにやったこと
論文と本から学ぶ、プログラミング独学のコツ
目標達成率を高める if thenプランニングとは!?【本とアプリも紹介】