Ubuntu で RAM ディスクを設定して docker をオンメモリで動かすには

自分は Windows PC ホスト内で VirtualBox で Ubuntu 系 Linux Mint を起動しているのですが、docker のコンテナやボリュームデータをまるごとオンメモリで高速に動作させたいと思い、RAMディスクを設定して載せるようにしました。RAM ディスクだと OS をシャットダウンすると消えてしまいますが、Docker の場合、古いコンテナのデータがどんどん溜まっていくために掃除できて開発上好都合でもあります。 RAMディスクの設定 まずパス /ramdisk をマウントポイントとして RAM ディスクを設定することにします。 マウントポイントの作成 ディレクトリを作成して、スティッキービットを付けて誰でも書き込み可能にします。 $ sudo mkdir /ramdisk $ sudo chmod 1777 /ramdisk /etc/fstab の設定 /etc/fstab に下記を追記します。 tmpfs /ramdisk tmpfs defaults 0 0 一旦、OSを再起動します。(fstab に設定しなくても一時的には mount コマンドで対応することも可能) Docker のコンテナとボリュームを置き場を設定 以下の設定中は Docker を停止しておきます。 /ramdisk にディレクトリを作る $ sudo mkdir -p /ramdisk/docker/containers $ sudo mkdir -p /ramdisk/docker/volumes シンボリックを張る /var/lib/docker の containers, volumes が /ramdisk/docker を見るようにします。 $ sudo -i # cd /var/lib/docker # mv containers containers.old # mv volumes volumes.old # ln -s /ramdisk/docker/containers # ln -s /ramdisk/docker/volumes 動作確認 Docker を起動して、適当なコンテナを走らせて、 /ramdisk/docker 内にファイルが作られることを確認します。 ...

2019年9月5日 · Toshimitsu Takahashi

bash シンプルなデーモンプログラムの制御スクリプト

Linuxなどで動かすデーモンプログラムを起動(start)・停止(stop)・再起動(restart)・状態確認(status)するための制御スクリプトを書いたのでメモしておく。 実装のポイント 一般的なプロセスIDファイルによるプロセス確認をしている。 停止時に3秒おきにシグナル0を送り、プロセスが終了するまで見届ける。 statusでプロセスIDファイルだけ残ってプロセスが無いときはクラッシュの可能性が示す。 スクリプト 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 #!/bin/bash prgfile=<Program Script filepath> pidfile=<PID filepath> start() { if [ -f $pidfile ]; then pid=`cat $pidfile` kill -0 $pid >& /dev/null if [ $? -eq 0 ]; then echo "Daemon has started." return 1 fi fi $prgfile if [ $? -eq 0 ]; then echo "Daemon started." return 0 else echo "Failed to start daemon." return 1 fi } stop() { if [ ! -f $pidfile ]; then echo "Daemon not started." return 1 fi pid=`cat $pidfile` kill $pid >& /dev/null if [ $? -ne 0 ]; then echo "Operation not permitted." return 1 fi echo -n "Stopping daemon..." while true do kill -0 $pid >& /dev/null if [ $? -ne 0 ]; then break fi sleep 3 echo -n "." done echo -e "\nDaemon stopped." return 0 } status() { if [ -f $pidfile ]; then pid=`cat $pidfile` kill -0 $pid >& /dev/null if [ $? -eq 0 ]; then echo "Daemon running. (PID: ${pid})" return 0 else echo "Daemon might crash. (PID: ${pid} file remains)" return 1 fi else echo "Daemon not started." return 0 fi } restart() { stop if [ $? -ne 0 ]; then return 1 fi sleep 2 start return $? } case "$1" in start | stop | status | restart) $1 ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 2 esac exit $? 実行プログラムのファイルパス プロセスIDファイルのパス 停止部分は実行プログラムの性質によって適宜変更すると良い。 ...

2013年2月21日 · Toshimitsu Takahashi

Ubuntu 11.04 で DHCP から 静的 IP アドレスに切り替えるには

普通にインストールしたら、DHCPなってしまった。固定 IP アドレスに変更する方法をメモしておく。 ネットワークインターフェイス設定 interfaces ファイルを開く。 $ sudo vi /etc/network/interfaces /etc/network/interfaces # The primary network interface iface eth0 inet dhcp 上記部分を下記のとおり書き換える。 # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameserver 192.168.1.1 ネットワークサービスを再起動 再起動してNICに適用する。 $ sudo /etc/init.d/networking restart

2011年9月22日 · Toshimitsu Takahashi