Docker – バインド

概要

Dockerのホストとコンテナでディレクトリーをバインドして共有する。runコマンドの--mountオプションを使う。

以下を前提とする。

  • UbuntuにApache2をインストールしたイメージ(ubuntu-apache)を使う
  • 以下のフォルダーとディレクトリーをバインドする。
    • ホスト側:C:\dev\docker\ubuntu\share
    • コンテナ側:/var/www/html

mountオプション

runコマンドのmountオプションの書き方は以下の通り。key=valueの間のコンマの前後にスペースを入れないこと。

--mount type=bind,src=[ホスト側],dst=[コンテナ側]

実行例

イメージを確認。

runコマンドを実行。

これにより、ホスト側のC:\dockshareフォルダーの内容とコンテナ側の/usr/local/shareディレクトリーの内容が同期される。

コンテナ側の上書き

コンテナが起動したとき、ホスト側のフォルダーの内容でコンテナ側のディレクトリーが上書きされる(ホスト側のフォルダーが空ならコンテナ側にファイルがあったとしても空になる)。ホスト側のC:\dev\docker\ubuntu\shareが空だとコンテナ側の/var/www/htmlディレクトリーも空になり、デフォルトページindex.htmlも削除される。

ここでホスト側の共有フォルダーに新たなindex.htmlを作ると、その内容がコンテナ側に反映され、localhost:8080で表示できる。

なお共有後はコンテナ側での作成・削除・変更内容もホスト側に反映される。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です