やったこと
Raspberry Pi 3とUSB HDDを使ってLAN上にNASを立てた。
これまでもDockerを使わずに同じ事をやっていたが、ラズパイに色々な機能を付けたり消したりして遊んでいるうちに環境が汚れてくるのが気になりはじめた。そこでRaspbian Busterへのアップグレードを機に環境を一から作り直して、Docker Composeで管理することにした。
メリット
- 環境が汚れないので、他のサービスも自由に立てたり消したりできる
- Raspberry Pi自体をバックアップする際に、SDカードのダンプ(8GB)を取る必要が無くなった(仮にトラブったとしてもdocker-compose.ymlから秒速で復元できるので)
下準備
- Raspbianをセットアップし、コマンドが打てる状態にする
-
sudo apt update
sudo apt full-upgrade
- 外付けハードディスクをブート時に自動でマウントするよう設定する(今回は
/mnt/hdd1
へマウントした) - Docker Composeを導入する
サービスを立ち上げる
- 以下のdocker-composeを使って
docker-compose up -d
する -
\\[Raspberry Piの名前]\share
にネットワークからアクセスできることを確認する -
\\[Raspberry Piの名前]\share\media
にDLNAで再生したい動画ファイルを突っ込む - おわり
docker-compose.yml
version: '3.4'
services:
minidlna:
image: cytomich/rpi-docker-minidlna
container_name: minidlna
volumes:
- /mnt/hdd1/media:/media:z
environment:
- MINIDLNA_MEDIA_DIR=/media
- MINIDLNA_PORT=8200
- MINIDLNA_FRIENDLY_NAME=NASpi
network_mode: "host"
restart: always
samba:
image: dperson/samba
container_name: samba
networks:
- default
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
read_only: true
tmpfs:
- /tmp
restart: always
stdin_open: true
tty: true
volumes:
- /mnt/hdd1:/mnt/share:z
command: '-s share;/mnt/share;yes;no;yes'
結果
パフォーマンスは良好です。DLNA機能についても、数百kbpsのMP4程度なら問題なく再生できました。あくまでRaspberry Piなので過信は禁物ですが、もう少しなら余裕がありそうです。
docker-compose.yml
をカスタマイズして、自分だけの最強ホームサーバーを作り上げましょう!