docker cp コマンドを使うとホスト⇒コンテナ、コンテナ⇒ホストでファイルのコピーができる。
以下httpdコンテナのindex.htmlをホストにコピーし、書き換えたあとコンテナ内に戻す例
・前提条件
※1・・・コマンドはすべてPowerShellから実行している
※2・・・hogeContainer⇒起動したhttpdコンテナのName
①コンテナ内のカレントディレクトリを確認する
docker exec hogeContainer pwd
②lsコマンドでカレントディレクトリのフォルダ一覧を確認する
docker exec hogeContainer ls
③lsコマンドでindex.htmlが存在することを確認する
docker exec hogeContainer ls htdocs
④cpコマンドでホストにindex.htmlをコピーする
docker cp hogeContainer:/usr/local/apache2/htdocs c:/test
引数1:コピー元(コンテナ)
引数2:コピー先(ホスト-windows)
※コンテナ内のパスは①で確認したカレントディレクトリをつける必要がある
⑤④で取得したindex.htmlをホストで書き換え、以下コマンドでコンテナ内にコピーする
docker cp c:/test/htdocs/index.html hogeContainer:/usr/local/apache2/htdocs/index.html
⑥ブラウザにhttp://localhost:8080と入力し、書き換えた文字列が表示されればOK。
▼コマンドの実行結果