このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Docker入門】ホスト内のファイルをコンテナにコピーする

ホスト内のファイルをコンテナにコピーしていきます。

 以下の「コンテナ内のファイルをホストにコピーする」の操作を既に行っていることを前提としています。

【Docker入門】コンテナ内のファイルをホストにコピーする

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 【Docker入門】コンテナ内のファイルをホストにコピーする コンテナ内のファイルをホ…

 ここでは、「docker compose cp」コマンドを使って、ホスト内にあるファイルをコンテナにコピーしていきますが、「docker container cp」コマンドを使ってファイルをコピーすることもできます。

ディレクトリの移動

 「コンテナ内のファイルをホストにコピーする」でコンテナからコピーした「index.html」ファイルがある「desktop/docker/apache」ディレクトリに移動しておきます。

・「cd desktop/docker/apache」コマンドを実行します。

PS C:\Users\joeac> cd desktop/docker/apache
PS C:\Users\joeac\Desktop\docker\apache>

Webコンテンツの作成

Webコンテンツを作成します。

画像ファイルのダウンロード

・クジラのアイコンを下記リンクからダウンロードします。

ここでは、PNGファイルをダウンロードすることにします。

・ダウンロードしたクジラのアイコンのファイル名を「whale.png」に変更します。

・「whale.png」を「apache」ディレクトリに保存します。

Topページの作成

index.html」を作成します。

・「code index.html」を実行します。

PS C:\Users\joeac\Desktop\docker\apache> code index.html

VS Codeが起動します。

・以下の内容に変更して保存します。

<HTML>
<BODY>
<H1>Development environment</H1>
<BR>
<IMG src="whale.png">
</BODY>
</HTML>

「index.html」を表示する。

作成した「index.html」を表示して確認します。

・「index.html」をブラウザで表示します。

「index.html」をダブルクリックするなどして確認します。

上図のようにブラウザ表示されていれば、「index.html」が正しく作成されています。

ファイルの確認

「apache」ディレクトリ内のファイルを確認します。

・「ls」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\apache> ls

    Directory: C:\Users\joeac\Desktop\docker\apache

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2024/03/31     1:43             87 compose.yaml
-a---          2024/04/01     0:44             89 index.html
-a---          2024/03/20     3:05           4988 whale.png

ホストからコンテナへファイルをコピー

ホスト内にある「index.html」と「whale.png」ファイルをホストへコピーします。

 現時点では、アーカイブしたファイルをコピーしてもアーカイブしたファイルは展開されないようです。少し手間ですが、1つずつ、ファイルをコピーしていきます。

【構文】
docker compose cp <ホストのファイルパス> <サービス名>:<コンテナ内のファイルパス>

以下のコマンドを実行します。

  • 「docker compose cp ./index.html apache:/usr/local/apache2/htdocs」コマンド
  • 「docker compose cp ./whale.png apache:/usr/local/apache2/htdocs」コマンド
PS C:\Users\joeac\Desktop\docker\apache> docker compose cp ./index.html apache:/usr/local/apache2/htdocs
[+] Copying 1/0
 ✔ apache-apache-1 copy ./index.html to apache-apache-1:/usr/local/apache2/htdocs Copied                               0.0s
PS C:\Users\joeac\Desktop\docker\apache> docker compose cp ./whale.png apache:/usr/local/apache2/htdocs
[+] Copying 1/0
 ✔ apache-apache-1 copy ./whale.png to apache-apache-1:/usr/local/apache2/htdocs Copied                                0.0s

Webブラウザで確認

・Webブラウザを起動して、URLに「localhost」と入力します。

Webページが表示されます。

注意:コンテナを削除するとコンテナ内のデータも削除される。

ここで、注意しておきたいことがあります。

それは、

コンテナを削除するとコンテナ内にあるデータがなくなってしまう。

ということです。

 コンテナ内にあるデータは、事前にホストにコピーしておくか、ボリュームを作成して永続データとして保存しておくなどの対策が必要です。

永続データについては以下のコンテンツで解説しています。

【Docker入門】ボリュームとは

【Docker入門】ボリュームとは  ボリュームは、Dockerコンテナにおいてデータの永続性を確保する重要な概念です。コンテナ内で生成されたデータを永続的に保存し、複数の…

最後にDockerオブジェクトの削除

ここで、作成したDockerオブジェクトをすべて削除しておきます。

すべてのサービスを停止します。

・「docker compose stop」コマンドを実行します。

すべてのサービスを停止させます。

PS C:\Users\joeac\Desktop\docker\apache> docker compose stop
[+] Stopping 1/1
 ✔ Container apache-apache-1  Stopped

・「docker system prune -a」コマンドを実行します。

Are you sure you want to continue? [y/N] の問いには「y」と入力します。

PS C:\Users\joeac\Desktop\docker\apache> docker system prune -a
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
Deleted Containers:
69bb7ffd3ee80eb3f7ce2a83f075ec57c8d586e6474f3d952a62c020c2215408

Deleted Networks:
apache_default

Deleted Images:
untagged: httpd:2.4
untagged: httpd@sha256:374766f5bc5977c9b72fdb8ae3ed05b7fc89060e7edc88fcbf142d6988e58eeb
deleted: sha256:ac45b24b92cc0527c6af660679d0701f680a6d4214cf5cf9a147f20127d9685e
deleted: sha256:f05921eb27f3a6477b22284fcb69a1d5be244dd94ddee40700014305c6e7b8f3
deleted: sha256:6721078d05153c2ea23c831c8b87d437177abca9edafe43f7fcdb405a8ac8430
deleted: sha256:7c89dd89a4101d1bb42d0eb9d9cf145906c4e574826c3792f7211325362e563a
deleted: sha256:34fa6dddb40afdba66482396f5e08ad22f646fb4fc9770e5d02dd4c61c18db00
deleted: sha256:25c712dda17c439dc446a448c708596dbda15aa42f88e99685eda1b25d30b2c0
deleted: sha256:a483da8ab3e941547542718cacd3258c6c705a63e94183c837c9bc44eb608999

Total reclaimed space: 167.5MB
PS C:\Users\joeac\Desktop\docker\apache>

すべて削除されない場合

 基本的に利用していないDockerオブジェクトが削除されますが、時には一部のオブジェクトが残る場合があります。その場合は、コマンドやDocker Desktopを使って個別に削除します。

関連コンテンツ