Dockerを使用する際、ホスト⇔コンテナ間でファイルを共有したい時の方法になります。
sshよりローカルでいじりたい!という人向け。
使用ツール
Docker Toolbox v19.03.1
ホストOS:Windows 10 Home
コンテナOS:CentOS
本記事で使用するフォルダ名
ホストOS:folder_host
Dockerマシン:folder_machine
コンテナOS:folder_container
1.VirtualBoxの共有フォルダを設定する
VirtualBox->対象のDockerマシンの設定->共有フォルダー->追加
ホストOS側の共有させたいフォルダ絶対パスと、Dockerマシンに配置されることになる共有フォルダ名を設定する。
ここでは例として、ホストOS側のフォルダ名をfolder_host
、Dockerマシンに配置される共有フォルダ名をfolder_machine
とする
(Dockerマシンに/folder_machine
が作られることになる)
2.Dockerマシンを再起動する(大事)
投稿時は記載し忘たが、Dockerマシンに共有フォルダを認識させるために必要。
docker-machine restart default
3.マウントを指定してdocker runする
-v Dockerマシンに配置される共有フォルダパス:コンテナで使用したいフォルダパス
例として、コンテナで使用したいフォルダ名をfolder_container
とする。
docker run -d -v /folder_machine:/folder_container centos /sbin/init
あとはrunしたコンテナにexecでアタッチする。
例:docker exec -it <コンテナIDとか名前> /bin/bash
4.ホストOSとコンテナOSでファイルが共有できていることを確認する
ホストOS側のフォルダfolder_host
と、コンテナOS側のフォルダ:folder_container
が共有される。
テストはecho "test" > /folder_container/test.txt
等
雑記
本記事は備忘録になります。
検索すると色々なページが見つかりますが自分の環境でうまくいかず余計なことをしている気がして、
中でどういう動作をしているかわからないので少しでも動きを理解するために書きました。
Docker for Windowsに適したWindows 10がアップデートされるまでしょうがなくDocker Toolboxを使ってる人はどうぞ。