イメージの環境構築をしていくのに、外部ファイルからインストールしたりする場合やプログラムを配置する場合には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のパス]:[コンテナ上のマウントポイント]
です
共有してみる
では、実際にファイルを共有してみましょう
以下、まだホスト側のディレクトリに何も入っていない状態です
当然コンテナ側で見てもからっぽです
/ # ls -l /shared/* ls: /shared/*: No such file or directory
試しにテキストファイルを追加してみましょう
コンテナ側でもっかい見てみると~
/ # ls -l /shared/* -rwxrwxrwx 1 1000 50 9 Aug 24 12:23 /shared/test.txt / # cat /shared/test.txt test text/ # / #
みえた~(*`・ω・)ゞ