自分は Windows PC ホスト内で VirtualBox で Ubuntu 系 Linux Mint を起動しているのですが、docker のコンテナやボリュームデータをまるごとオンメモリで高速に動作させたいと思い、RAMディスクを設定して載せるようにしました。RAM ディスクだと OS をシャットダウンすると消えてしまいますが、Docker の場合、古いコンテナのデータがどんどん溜まっていくために掃除できて開発上好都合でもあります。
RAMディスクの設定
まずパス /ramdisk をマウントポイントとして RAM ディスクを設定することにします。
マウントポイントの作成
ディレクトリを作成して、スティッキービットを付けて誰でも書き込み可能にします。
1 | $ sudo mkdir /ramdisk |
/etc/fstab の設定
/etc/fstab に下記を追記します。
1 | tmpfs /ramdisk tmpfs defaults 0 0 |
一旦、OSを再起動します。(fstab に設定しなくても一時的には mount コマンドで対応することも可能)
Docker のコンテナとボリュームを置き場を設定
以下の設定中は Docker を停止しておきます。
/ramdisk にディレクトリを作る
1 | $ sudo mkdir -p /ramdisk/docker/containers |
シンボリックを張る
/var/lib/docker の containers, volumes が /ramdisk/docker を見るようにします。
1 | $ sudo -i |
動作確認
Docker を起動して、適当なコンテナを走らせて、 /ramdisk/docker 内にファイルが作られることを確認します。
/ramdisk/docker の作成を自動化
/ramdisk/docker 内のディレクトリ構成を OS 起動時に作成するように設定します。
/etc/rc.local の設定
/etc/rc.local として下記を追記するか、コマンドを追記します。作成した場合は chmod +x /etc/rc.local
で実行権限を付与しておきます。
1 |
|
最終確認
OS を再起動します。下記のそれぞれのコマンドが想定どおりの結果になっていれば OK です。
1 | $ ls -lR /ramdisk |
1 | $ ls -l /var/lib/docker |
1 | $ sudo docker ps |
これでローカル開発において、docker 上の依存サービスを高速に動作させることができるようになりました。なお自分の環境では VirtualBox に対してメモリ 8GB 割り当てた Ubuntu 18.04 がベースの Linux Mint 19.2 Tina インスタンスでこれを設定してます。