LoginSignup
0
0

More than 1 year has passed since last update.

【Docker】-v,--mount,docker-composeの対応についてマウントタイプ毎に整理する

Last updated at Posted at 2021-08-04

docker runの-vオプションと--mountオプションについて

公式ドキュメントのヒントにはこのように書いてあります。

ヒント: はじめて利用する方は --mount を利用してください。 上級ユーザーは -v や --volume を用いることに慣れているかもしれませんが、--mount を利用するように心がけてください。 --mount の方が簡単に利用することができるとの調査もあります。

おそらく、-vコマンドはある程度ボリュームについて理解していないと、どのマウントタイプを使っていて、どんな挙動をするのかが分からなくなってしまうからでしょう。

ボリュームタイプのマウントを使用する場合

-vを使用するパターン
docker run -d \
  --name devtest \
  -v myvol2:/app \
  nginx:latest
--mountを使用するパターン
docker run -d \
  --name devtest \
  --mount source=myvol2,target=/app \
  nginx:latest
docker-composeを使用するパターン
version: "3.3"

services:
 web:
   container_name: 'devtest'
   image: nginx:latest
   volumes:
     - myvol2:/app

volumes:
  myvol2:
    name : myvol2

docker-composeの場合、トップレベルのvolumesが「docker volume create」に対応します。
また、ボリュームタイプのマウントは、「docker volume ls」 で一覧を確認することができます。

バインドタイプのマウントを使用する場合

-vを使用するパターン
docker run -d \
  --name devtest \
  -v "$(pwd)"/target:/app \
  nginx:latest
--mountを使用するパターン
docker run -d \
  --name devtest \
  --mount type=bind,source="$(pwd)"/target,target=/app \
  nginx:latest
docker-composeを使用するパターン
version: "3.3"

services:
 web:
   container_name: 'devtest'
   image: nginx:latest
   volumes:
     - ./target:/app

volumeタイプのマウントが<ボリューム名>:<コンテナのパス>だったのに対して、
bindタイプのマウントでは、<ホストのパス>:<コンテナのパス>になっています。


上記の二つ以外にもtmpfsというマウントタイプがあります。こちらはホストのメモリ上にデータを保存し、コンテナが停止すると削除されるため、使用用途は機密データを扱う場合などに限られます。

0
0
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
0
0