✅ 意味
COPY は、ホストコンピュータにあるファイルをコピーして、コンテナ内へ転送する役割を果たします。
✅ 使い方
# 文法
COPY [ホスト側のコピー元パス] [コンテナ側のコピー先パス]
# 例
COPY app.txt /app.txt
🎯 ファイルをコピーしてみる
1. app.txt ファイルを作成
2. Dockerfile を作成してイメージをビルド、コンテナを実行
Dockerfile
FROM ubuntu
COPY app.txt /app.txt
# デバッグ用コード:コンテナを維持させる
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
3. コマンド実行
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [コンテナID] bash
$ ls # ファイルがコピーされているか確認

🎯 フォルダ内のすべてのファイルをコピー
1. my-app ディレクトリを作成し、その中にファイルを作成
2. Dockerfile を作成して実行
Dockerfile
FROM ubuntu
COPY my-app /my-app/
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
3. コマンド実行
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [コンテナID] bash
$ ls

🎯 ワイルドカードを使用してみる
1. app.txt と readme.txt の 2 つのファイルを作成
2. Dockerfile を作成して実行
Dockerfile
FROM ubuntu
# 拡張子が .txt のすべてのファイルをコピー
COPY *.txt /text-files/
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
⚠️ 注意: /text-files ではなく /text-files/ と記述する必要があります。末尾に / をつけることで、text-files というディレクトリの中にファイルが正常にコピーされます。
3. コマンド実行
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [コンテナID] bash
$ ls
🎯 .dockerignore を使用してみる
特定のファイルやフォルダだけを COPY の対象から除外したい場合があります。その際に .dockerignore を活用します完成。
1. .dockerignore ファイルを作成
.dockerignore
readme.txt
2. Dockerfile を作成して実行
Dockerfile
FROM ubuntu
# カレントディレクトリのすべてをコンテナのルートへコピー(ただし .dockerignore の対象は除く)
COPY ./ /
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
3. コマンド実行
$ docker build -t my-server .
$ docker run -d my-server
$ docker exec -it [コンテナID] bash
$ ls # readme.txt が除外されているか確認
'Docker > Dockerfile' 카테고리의 다른 글
| Spring Bootを Dockerで実行 (0) | 2026.03.15 |
|---|---|
| ENTRYPOINT (0) | 2026.03.15 |
| 終了したコンテナに入ってデバッグしたいとき (0) | 2026.03.13 |
| ベースイメージの指定 (0) | 2026.03.12 |
| Dockerfile とは? (0) | 2026.03.12 |