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

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

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

Docker Composeを使ってみる①」の操作を既に行っていることを前提としています。

【Docker入門】Docker Composeを使ってみる①

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 【Docker入門】Docker Composeを使ってみる① Docker Composeを使ってWebサーバーのコ…

ディレクトリの移動

Docker Composeでコンテナを作成するには、「compose.yaml」ファイルが必要になります。

 デフォルトでは、カレントディレクトリにある「compose.yaml」ファイルが読み込まれるため、「compose.yaml」ファイルを保存している「desktop/docker/apache」ディレクトリに移動しておきます。

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

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

コンテナの作成と実行

「compose.yaml」ファイルの内容は次のように定義しています。

・「cat compose.yaml」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\apache> cat compose.yaml
version: '3'

services:
  apache:
    image: httpd:2.4
    ports:
      - "80:80"

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

このコマンドは、「compose.yaml」ファイルを配置した場所で実行する必要があります。

PS C:\Users\joeac\Desktop\docker\apache> docker compose up -d
[+] Running 7/7
 ✔ apache 6 layers [⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                     7.1s
   ✔ 8a1e25ce7c4f Pull complete                                                                                        1.3s
   ✔ 8b0a7c8478f8 Pull complete                                                                                        0.8s
   ✔ 4f4fb700ef54 Pull complete                                                                                        0.7s
   ✔ 7f8fb0a042e0 Pull complete                                                                                        1.5s
   ✔ 91e4b2f2b52a Pull complete                                                                                        2.0s
   ✔ c78cdbf9617d Pull complete                                                                                        3.2s
[+] Building 0.0s (0/0)                                                                                      docker:default
[+] Running 2/2
 ✔ Network apache_default     Created                                                                                  0.0s
 ✔ Container apache-apache-1  Started                                                                                  0.1s

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

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

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

・「docker compose cp apache:/usr/local/apache2/htdocs/index.html .」コマンドを実行します。

 このコマンドは、Docker Composeで起動したコンテナ(apache)内の /usr/local/apache2/htdocs/index.html ファイルを、ホストマシンのカレントディレクトリにコピーします。コマンドの後ろにカレントディレクトリを表す「.」があるので注意してください。

要素説明
docker compose cpDocker Composeでコンテナからホストマシンにファイルをコピーするコマンド。
apache:/usr/local/apache2/htdocs/index.htmlコピー元のファイルが存在するサービス名(コンテナ名)「apache」とファイルパス(/usr/local/apache2/htdocs/index.html)。
.コピー先のディレクトリ。ここでは現在のディレクトリ(カレントディレクトリ)を指定している。
docker compose cp コマンド
PS C:\Users\joeac\Desktop\docker\apache> docker compose cp apache:/usr/local/apache2/htdocs/index.html .
[+] Copying 1/0
 ✔ apache-apache-1 copy apache-apache-1:/usr/local/apache2/htdocs/index.html to . Copied                               0.0s
PS C:\Users\joeac\Desktop\docker\apache>

ホストへコピーした「index.html」ファイルの中身を確認します。

・「cat index.html」コマンドを実行します。

PS C:\Users\joeac\Desktop\docker\apache> cat index.html
<html><body><h1>It works!</h1></body></html>

 引き続き「ホスト内のファイルをコンテナにコピーする」では、ホスト内にあるファイルをコンテナにコピーしていきます。

関連コンテンツ