【Docker使えるようになりたい】【#14 バインドマウント】ホストOSのフォルダ領域を使ってデータを保存する

はじめに

バインドマウントを使ってホストOS上のファイルと連携させる機能について解説します。

バインドマウントは、ボリュームとは違い、実際のホストOS上のフォルダとコンテナ内のフォルダを連携させる機能です。

コマンドや機能としては、対象がボリュームなのかホストOSのフォルダなのかだけなのでコマンドもそこまで変化はありません。

docker container run -v {ホストOSのフォルダへの絶対パス}:{マウント名}
  • ホストOSのフォルダへの絶対パス: /Users/djima/Desktop/tttなどの、絶対パスである必要があります。相対パスの指定はできません
  • マウント名 : コンテナ内のパスの絶対パスを指定する必要があります。/appなど

例 : ホストOSのデータをコンテナ内から書き換えてみる

以下の情報を使ってコンテナにボリュームをリンクさせます。

  • ホストOSフォルダの絶対パス : /Users/djima/Desktop/ttt
  • マウント名 : /myDir
Zsh
docker container run -it -v /Users/djima/Desktop/ttt:/myDir —-rm ubuntu:20.04

絶対パスを省略する

dockerコマンドの実行時のパスであれば、pwdコマンドで取得することができます。

この性質を使用して、以下のような記述が可能です。

Zsh
docker container run -it -v "$(pwd)/ttt:/myDir" —-rm ubuntu:20.04

この場合、dockerコマンド実行時のカレントディレクトリは、/Users/djima/Desktopである必要があります。

ボリュームとバインドマウントの使い分け

適材適所で使い分けるものですが、私はDockerを開発環境として今はよく使っているので、ホストOSからもファイルの構造などが見やすいように「バインドマウント」をよく使います。

逆にボリュームはデータベース用のコンテナを使うときなどは多用すると思います。

まとめると

  • 開発環境として使う場合 : バインドマウント
  • データベースなどホストOS上にある必要はないがコンテナがなくなっても保持しておきたい場合 : ボリューム

コメントを残す

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

CAPTCHA