このページで解説している内容は、以下の 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 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を使って個別に削除します。
