Dockerで起動コンテナにホストOSのVolumeを提供する
Docker
Published: 2020-12-11

やったこと

Dockerで起動しているコンテナに、ホストOSのVolumeを提供して共有で使います。

確認環境

$ docker --version
Docker version 19.03.13, build 4484c46d9d

調査

今回 docker container run で、このオプションを使ってみます。

-v, –volume list Bind mount a volume

タブ1: ホストOS (手元のPC) で起動するコンテナに提供するVolume

$ pwd
/tmp/test_volume
$ tree
.
└── sample.txt
$ cat sample.txt
123

タブ2: コンテナ起動

$ docker container run \
> --name abc_container \
> -h host1 \
> -it \
> -v /tmp/test_volume:/tmp \
> ruby:2.5 \
> /bin/bash
root@host1:/# ls /tmp/
sample.txt
root@host1:/# cat /tmp/sample.txt
123

タブ1: ファイル追加

$ pwd
/tmp/test_volume
$ echo 456 > sample2.md
$ cat sample2.md
456

タブ2: コンテナ上でファイルが存在していることを確認

root@host1:/# ls /tmp/
sample.txt  sample2.md
root@host1:/# cat /tmp/sample2.md
456

ホストOSで追加したファイルが、コンテナ上でも確認することができました。

最後に

ホストOSのデータをコンテナに見せるには、下記のような方法もあります。

  • bind mount
  • tmpfs mount