かべぎわブログ

技術的なことについてかけたらいいな…

DockerfileのCOPYでローカルのファイルをDockerイメージにコピーする

概要

DockerfileでCOPY命令をつかってローカルにおいてあるファイルをDockerイメージのファイルシステムのなかにコピーしてみたいと思います。

事前準備

今回はローカルにwawawa.txtというテキストファイルを作成しておいて、それをDockerイメージの/root/配下に格納することを想定しています。

以下のようなDockerfileを用意。

FROM centos
COPY wawawa.txt /root/

ローカルのwawawa.txtはDockerfileと同じディレクトリに格納します。

$ ls -l docker_file_dir/
合計 8
-rw-rw-r-- 1 ec2-user ec2-user 35  8月  1 13:56 Dockerfile
-rw-rw-r-- 1 ec2-user ec2-user  7  8月  1 13:56 wawawa.txt

やってみる

事前準備で作ったDockerfileを指定してdocker buildする。

$ sudo docker build -t copy_test ./docker_file_dir/

Sending build context to Docker daemon  4.096kB
Step 1/2 : FROM centos
 ---> 49f7960eb7e4
Step 2/2 : COPY wawawa.txt /root/
 ---> d1443a737c8e
Successfully built d1443a737c8e
Successfully tagged copy_test:latest

確認のためにlsでコマンドを実行してみるとコンテナの中にwawawa.txtが入っていることがわかる。

$ sudo docker run d1443a737c8e ls -l /root/wawawa.txt
-rw-rw-r-- 1 root root 7 Aug  1 13:56 /root/wawawa.txt

おわりに

実際はindex.htmlとかkeepalive用のファイルとかをコンテナ上に格納するのに使うとよいのかもしれない。

またはローカルからしかとってこないファイルをこの方法でコピーするとか。

Docker

Docker