目次
1. コンテナとホスト間のファイルのコピー
コンテナへコピーする(ホスト→コンテナ)
# 構文フォーマット
$ docker cp ホスト側パス コンテナ名:コンテナ側パス
# 例:Apacheコンテナを作成して、TOPページを変更してみる
# 手順1:Apacheコンテナの作成
$ docker run --name apa000ex19 -d -p 8089:80 httpd
# 手順2:cpコマンドを実行してホストからコンテナへindex.htmlをコピー
$ docker index.htmlまでのパス apa000ex19:/usr/local/apache2/htdocs
# 手順3:index.htmlがトップページに変わる
# http://localhost:8089/ にアクセス
コンテナからコピーする(コンテナ→ホスト)
# 構文フォーマット
$ docker cp コンテナ名:コンテナ側パス ホスト側パス
# 例:Apacheのコンテナにあるindex.htmlをホスト側にコピーする
$ docker cp apa000ex19:/usr/local/apache2/htdocs/index.html ホスト側パス
2. ボリュームのマウント
ボリュームとは?
ストレージの1領域を区切ったもの。(ハードディスクやSSDの区切られた1領域)
マウントとは?
対象を接続して、OSやソフトウェアの支配下に置くこと。(USBメモリなど)
ボリュームマウント
DockerEngineが管理している領域内にボリュームを作成し、ディスクとしてコンテナにマウントすること。
直接操作しづらいため、仮で使いたい場合、設定ファイルなどを置くのに使用する。
バインドマウント
PVのドキュメントやデスクトップなど、DockerEngineの管理していない場所の既に存在するディレクトリをコンテナにマウントすること。
フォルダに対して直接ファイルを操作できるため、頻繁に触りたいファイルは、ここに置く。
記憶領域のマウント手順
1. ボリューム(記憶領域)を作成する
# ボリュームマウントの場合は、以下の通り
# ボリューム作成
$ docker volume create ボリューム名
# ボリューム削除
$ docker volume rm ボリューム名
# バインドマウントの場合は、あらかじめ自分のPCにフォルダやファイルを用意する
2. マウントする(コンテナを作成する)
# ボリュームマウント
docker run (省略) -v ボリューム名:コンテナの記憶領域パス (省略)
# バインドマウント
$ docker run (省略) -v 実際の記憶領域パス:コンテナの記憶領域パス (省略)
ボリュームマウントの例
# Apache 例
# マウントするボリュームを作成する
$ docker volume create apa000vol1
# runコマンドでApacheコンテナを起動する
$ docker run --name apa000ex21 -d -p 8091:80 -v apa000vol1:/usr/local/apache2/htdocs httpd
# volume inspectでボリュームの詳細情報を表示
$ docker volume inspect apa000vol1
バインドマウントの例
# マウントするフォルダ/ディレクトリを作成しておく
# runコマンドでApacheコンテナを起動する
$ docker run --name apa000ex20 -d -p 8090:80 -v マウントするフォルダのパス httpd
# Apacheに接続してみる
# http://localhost:8090/
# マウントしたフォルダ/ディレクトリにindex.htmlを置く
# 再びhttp://localhost:8090/にアクセスすると、表示が変わっているはず