Dockerfile 内のコマンド:COPY

概要

Dockerfile → イメージ生成の build時にイメージに任意のファイルをコピーするコマンド

※ADD コマンドも同様にファイルをコピーできる

※ADD はネット経由からのファイル追加や tarアーカイブ展開も可能と COPYより高機能

※Docker公式は ADD より COPY を推奨している

 → COPYは機能(ローカルファイルをコンテナの中にコピーする)が明確であるため

 (参考)https://docs.docker.jp/engine/userguide/eng-image/dockerfile_best-practice.html

用途

・ソースコードを入れた状態のイメージを作る

・準備した設定ファイルを反映した状態のイメージを作る

など

コピー対象のファイル “index.html” を準備
  1. vi エディタ等で index.html を作成
  • ここでは、index.html の内容を下記としています
    <h1>Docker COPY Test</h1>
Dockerfile を準備
  1. vi エディタ等で index.html を作成
  • ここでは、Dockerfile の内容を下記としています
    FROM ubuntu:20.04
    RUN apt-get update -y && \
    apt-get install -y nginx
    COPY index.html /var/www/html
    CMD [“nginx”, “-g”, “daemon off;”]
  • COPY コマンドで “index.html” をコンテナ内の “/var/www/html” ディレクトリ配下へコピーする内容です
  • RUNコマンドでインストールされる nginx のバージョンでは “/var/www/html” がドキュメントルート
Dockerfile からイメージを生成
  1. ターミナルで下記コマンドを実行
    docker build -t img-copy-nginx ./
  • ここでは、イメージ名を “img-copy-nginx” としています
  • “index.html” が “/var/www/html” へ COPY されていることも確認できます
コンテナ起動
  1. ターミナルで下記コマンドを実行
    docker run -d -p 8082:80 –name test-copy-nginx img-copy-nginx
コンテナ起動を確認
  1. ターミナルで下記コマンドを実行
    docker ps
実際にブラウザで確認
  1. URLに下記を入力して表示
    http://localhost:8082/
  • “index.html” の内容が表示されます