LoginSignup
4
7

More than 3 years have passed since last update.

Raspberry PiとDocker ComposeでDLNA機能付きNASを秒速で構築する

Posted at

やったこと

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を導入する

サービスを立ち上げる

  1. 以下のdocker-composeを使ってdocker-compose up -dする
  2. \\[Raspberry Piの名前]\shareにネットワークからアクセスできることを確認する
  3. \\[Raspberry Piの名前]\share\mediaにDLNAで再生したい動画ファイルを突っ込む
  4. おわり
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をカスタマイズして、自分だけの最強ホームサーバーを作り上げましょう!

参考にしたもの

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7