Docker – ホストOSのディスクをマウントしてファイルを共有する

イメージの環境構築をしていくのに、外部ファイルからインストールしたりする場合やプログラムを配置する場合にはDockerコンテナ上でそのファイルが見える必要があると思います

マウントする

コンテナ起動時にホストのディスクをマウントして起動します
通常に起動した場合は↓のようになります、特に外部のディスクはくっついていません

PS C:\Program Files\Docker Toolbox> docker run -it alpine bin/sh
/ #
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
none                     17.9G    259.2M     16.7G   1% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                  1001.1M         0   1001.1M   0% /sys/fs/cgroup
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/resolv.conf
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/hostname
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                  1001.1M         0   1001.1M   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                    64.0M         0     64.0M   0% /proc/timer_stats
tmpfs                  1001.1M         0   1001.1M   0% /proc/scsi
tmpfs                  1001.1M         0   1001.1M   0% /sys/firmware

 
起動時のオプションで-vを使います

PS C:\Program Files\Docker Toolbox> docker run -v /c/Users/shared:/shared -it alpine bin/sh
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
none                     17.9G    259.2M     16.7G   1% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                  1001.1M         0   1001.1M   0% /sys/fs/cgroup
c/Users                 237.2G    137.8G     99.4G  58% /shared
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/resolv.conf
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/hostname
/dev/sda1                17.9G    259.2M     16.7G   1% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                  1001.1M         0   1001.1M   0% /proc/acpi
tmpfs                    64.0M         0     64.0M   0% /proc/kcore
tmpfs                    64.0M         0     64.0M   0% /proc/keys
tmpfs                    64.0M         0     64.0M   0% /proc/timer_list
tmpfs                    64.0M         0     64.0M   0% /proc/timer_stats
tmpfs                  1001.1M         0   1001.1M   0% /proc/scsi
tmpfs                  1001.1M         0   1001.1M   0% /sys/firmware

 
上記のようにFilesystemがC/Usersで、/sharedにマウントされているのが分かります

 
-vのオプションは

docker run -v [ホストOSのパス]:[コンテナ上のマウントポイント]

です

 

共有してみる

 
では、実際にファイルを共有してみましょう
以下、まだホスト側のディレクトリに何も入っていない状態です

001_directory

 
当然コンテナ側で見てもからっぽです

/ # ls -l /shared/*
ls: /shared/*: No such file or directory

 
試しにテキストファイルを追加してみましょう

002_directory_exists_text

 
コンテナ側でもっかい見てみると~

/ # ls -l /shared/*
-rwxrwxrwx    1 1000     50               9 Aug 24 12:23 /shared/test.txt
/ # cat /shared/test.txt
test text/ #
/ #

みえた~(*`・ω・)ゞ

コメントを残す

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