LinuxにDockerでsambaをインストールする方法~自宅にNASを構築しよう~

ubuntu 18.04 LTSにDockerでsambaをインストールする方法 自宅サーバー

我が家では自宅サーバ(ubuntu 18.04 LTS)を立てて運用しています。
最近、Linuxサーバを新しく購入したので旧サーバからの移行を行いました。

今回はdockerを使ってsambaをインストールする手順を紹介したいと思います。

自分の場合は以前Raspberry piでsambaを構築・運用していたので、手順は同じDebian系のubuntuでセットアップしていますが、centos(RHL系)でも同じです。

Sambaサーバ とは

職場で共有フォルダを使ったことはありませんか?


チーム内や、プロジェクト内、部署内、あるいは社内でフォルダやファイルを共通の場所に配置して、それを参照・編集・ダウンロードしたことがあると思います。いわゆる、NASです。

Linux上でそのような共有フォルダ、共有ファイルを実現する際には、Sambaを使います。

これらは通常、パッケージ管理システム(apt,yum,rpm等)を使えば簡単にインストールできます。

今回は、自宅サーバの環境を汚さずにdockerを使ってsambaを構築してみましたので、その方法を紹介します。

既に作成済みのsmb.confファイルがあればそれを活用することも可能です。

インストール手順

前提

dockerおよびdocker-composeがインストールされていることが前提です。

もし、まだインストールしていない場合はこちらを参照してインストールしましょう。

私のマシン

私と同じ環境で構築される場合、構築で躓いた際にサポートできると思います。メモリ8GB以上を選択すればエンコード等しても性能的に問題はないと思います。Windows10マシンですが、私はUbuntuを上書きインストールして自宅サーバを構築しています。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

ディレクトリ構成

今回作業するディレクトリを作成し、作成したディレクトリ配下に

  • docker-compose.yml
  • smb.conf

を準備します。
docker-composeは新規で作成しますが、smb.confは今使っているものがあれば流用します。無ければ新規で作成します。
今回はDocker hubで公開されているイメージを使うため、Dockerfileを自分で作る必要はありません。

今回は適当な場所にdocker-sambaというディレクトリを新規作成しました。
ディレクトリ構成は、以下の通りです。
それでは、さっそく準備してみましょう。

docker-compose.yml

たったこれだけ。
今回使うイメージはvimagick/samba。

6-7行目は、共有するディレクトリをvolumesに指定しています。
自分の場合は外付けHDDをマウントしている/mntと/mediaをコンテナ内でも同じ場所にリンクしたいので、このような記述です。
コンテナ内の環境とsmb.confに合わせて修正しておきましょう。

10行目は基本、sambaは常に起動させておきたいのでrestart: alwaysとしています。


上記は後で如何様にもやり直しできるので、わからなければそのまま使ってください(これがdockerのいいところ)。

smb.conf

こちらは、環境に合わせて動くものならなんでもOKです。
なにも持ってなければ、まずはこれで試してみましょう。

[global]は共通設定です。

7行目のinterfaces = 127.0.0.0/8 10.29.3.0/24は、接続許可するインターフェースの設定です。私の自宅のNW環境はで、クラスAのプライベートアドレス帯(10.29.3.0/24)を使っていて、サーバには10.29.3.7のIPアドレスを振っているため、このような設定になっています。
良くある、クラスCのプライベートアドレス192.168.x.x/24を使っている場合は、ここの設定を変更してください。

後半の[mnt]、[media]は共有フォルダに表示させる名称です。この場合はmnt、mediaという名前でフォルダを共有します。

[share]でも[mount]でも[HDD]等なんでもOKです。要するに、どのフォルダにどのディレクトリが紐づいているか、自分が分かっていればOKです。

コンテナ起動

あとはdockerコンテナを起動するだけ。

エラーが出なければこれで共有フォルダが作成されたはず。

Windowsのエクスプローラーから見えたら成功です。

うまくいかない場合は、smb.confを見直してみましょう。

私の場合は、サーバのIPアドレスは10.29.3.7なので、\\10.29.3.7のパスを表示させます(このように見えれば成功です!)。

コンテナ停止

まとめ

共有フォルダをLinuxで用意する場合は、sambaを使います。
dockerを使えば、サーバの環境を汚さずに構築できます。
しかも、docker-compose.ymlとsmb.confがあれば構築可能です。
お家の中に共有フォルダがあると、写真やビデオの管理と参照が楽になっていいですよ。オススメです。
ぜひ、お試しあれ♪

docker-composeを使ったサービスをいくつか紹介しています。関連記事も参考にしてください。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

コメント

タイトルとURLをコピーしました