Docker:Dockerホストが管理するボリュームをコンテナに見せる方法(volume)

スポンサーリンク

Dockerホストが管理するボリュームをコンテナに見せる方法(volume)

Dockerホストが管理するボリュームをコンテナに見せるには--mount type=volumeオプションを指定してdocker container runコマンド実行します。

なお、ホストOSのデータをコンテナに見せる方法として以下の3種類があります。

  • bind mount:Dockerホスト上のディレクトリをコンテナに見せる
  • volume:Dockerホストが管理するボリューム(/var/lib/docker/volumes以下)をコンテナに見せる
  • tmpfs mount:Dockerホストのメモリをファイルシステムとしてコンテナに見せる

 

オプションの説明(抜粋)

$ docker container run --help

Usage:  docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

Options:
  -i, --interactive                    Keep STDIN open even if not attached
      --mount mount                    Attach a filesystem mount to the container
      --name string                    Assign a name to the container
  -t, --tty                            Allocate a pseudo-TTY

 

オプションの説明

  • --mountオプション:ホストOSが提供するディレクトリをコンテナに見せる
  • -iオプション:Dockerコンテナ起動時に、標準入力(STDIN)を受け付ける
  • -tオプション:仮想端末(pseudo-TTY)をコンテナに割り当てる
  • --nameオプション:作成するコンテナに名前を付ける
  • -i -tを同時に使用する場合は、-itオプションを使用できます

 

実行例

--mountオプションのsrcにホストOSが提供するディレクトリ、dstにコンテナ内のディレクトリを指定します。

$ docker container run -it --name test01 --mount type=volume,src=vol01,dst=/root/ctdir01 centos:7.7.1908 /bin/bash
[root@ed54421314fc /]# ls /root/ctdir01/
[root@ed54421314fc /]# echo "Hello" > /root/ctdir01/testfile01.txt
[root@ed54421314fc /]# CTRL+P、CTRL+Qでコンテナから離脱

$ docker volume ls  # docker volumeでボリュームの確認
DRIVER              VOLUME NAME
local               vol01

$ sudo ls /var/lib/docker/volumes/vol01/_data  # ホストOSのボリュームのファイルを確認
testfile01.txt
$ sudo cat /var/lib/docker/volumes/vol01/_data/testfile01.txt
Hello