LoginSignup
4
3

More than 1 year has passed since last update.

Docker マウントの理解

Posted at

Dockerのコンテナの中のファイルをVsCodeで編集したい。
その悩みはバインドマウントをすることで解決します。

[参考記事]
 https://nyakanishi.work/docker_mount/
 https://qiita.com/aki_55p/items/63c47214cab7bcb027e0

バインドマウントとボリュームマウントについて知っておきたいこと

バインドマウント

コンテナ内の特定のディレクトリやファイルをDockerホストにマウントさせリンクする。
リンクしたディレクトリ内のファイルを修正するとコンテナ内のファイルも修正される。
※ホストマシン上でVscodeを使ってファイルを修正したい時はこっちを使う。

ボリュームマウント 

コンテナの外(Dockerホスト上)にストレージ領域(ボリューム)を作成してコンテナ内の特定のディレクトリをリンクさせる。
コンテナを削除してもマウントしたディレクトリ内のデータはボリュームに保持されているため、利用していたボリュームをマウントすることで同じデータを持つコンテナが作れる。1つのボリュームを参照し、複数のコンテナに同じファイルを共有したりすることができる。

-vオプション--mountオプションでマウントできる

・どちらのオプションを使うかによって書き方が異なる。
--mountオプションの方が推奨されている。

 -vオプションではタイプミスしてもタイプミスした名前で新しいディレクトリを作成し、コンテナへのマウントを行う。
 --mountオプションではホスト側に存在しないディレクトリやファイルを指定するとエラーになる。
 よって--mountオプションの方が推奨されている。

マウントの方法の違い

バインドマウント

#-vオプションの場合
# docker run -itd --name 任意の名前 -p 8080:80 -v ホスト側PATH:コンテナ側PATH イメージ
$ docker run -itd --name sample-nginx -p 8080:80 -v /Users/<ユーザ名>/tmp_dir:/usr/share/nginx/html nginx:latest

#--mountオプションの場合
# docker run -itd --name 任意の名前 -p 8080:80 --mount type=bind,src=ホスト側PATH,dst=コンテナ側PATH イメージ
$ docker run -itd --name sample-nginx -p 8080:80 --mount type=bind,src=/Users/<ユーザ名>/tmp_dir,dst=/usr/share/nginx/html nginx:latest

#上下とも同じことをしています

ボリュームマウント

#ボリュームマウントを使用する際は、事前にボリュームをホストマシン上で作成する。
$ docker volume create sample-volume

#-vオプションの場合
# docker run -itd --name 任意の名前 -p 8080:80 -v ボリューム名:コンテナ側PATH イメージ
$ docker run -itd --name sample-nginx -p 8080:80 -v sample-volume:/usr/share/nginx/html nginx:latest

#--mountオプションの場合
# docker run -itd --name 任意の名前 -p 8080:80 --mount type=volume,src=ボリューム名,dst=コンテナ側PATH イメージ
$ docker run -itd --name sample-nginx -p 8080:80 --mount type=volume,src=sample-volume,dst=/usr/share/nginx/html nginx:latest

#上下とも同じことをしています
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3