Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Dockerコンテナ間でボリューム領域を共有する

ROSまわりの開発の際、外部装置の入れ替わり*1の度にcatkin_makeで環境を作るというやや不毛な事をしていました。
なんとか既存のコンテナにデバイスを追加できんかと探していましたが……冷静にDockerのコンセプトを考え直すと不変領域は別に逃がすものだよなと気付きました。

実際のところ

ボリューム領域をつくる

"docker volume create"でボリューム領域を生成できる。
最初は8kbyteほど

$ docker volume create --name OurVolume
OurVolume

最初のコンテナでファイルを作ってみる

$ docker run -it -v OurVolume:/datavolume --name MyCat alpine:latest
$ hostname
3d43d7a7e496
$ ls /datavolume/
$ echo 1234 > /datavolume/foobar.txt
$ exit

別のコンテナで先ほど作ったファイルを見てみる

$ docker run -it -v OurVolume:/datavolume --name YourDog alpine:latest
$ hostname
57cab23f9e75
$ cat /datavolume/foobar.txt
1234

*1:USBカメラを付けたり外したり、あるいはCAN通信のデバイスを追加したり