---
title: Synology NASにMinio on DockerをインストールしてS3互換サーバーにする
tags: ["NAS", "Synology", "Minio", "S3", "Docker"]
categories: ["Dev", "NAS", "Synology", "Minio"]
date: 2018-01-07T04:05:12Z
updated: 2018-01-07T04:38:00Z
---

[Synology DiskStation DS718+](https://www.amazon.co.jp/exec/obidos/ASIN/B074BYFKZ2/ikam-22/ref=nosim/)を買いました。

NASとしてだけではなく、SysLogサーバー、LDAPサーバーとしても使えて便利です。

このNASに[Minio](https://minio.io/)をインストールしてS3サーバーにもしてみました。

Package CenterにMinioは用意されていないのですが、Docker経由でインストール可能です。`ssh`でログインして`minio`コマンドを直接実行してもいいですが、Docker経由の方がGUIベースで管理できて、Synology NAS的には楽です。

https://docs.minio.io/docs/minio-docker-quickstart-guide
の内容をGUIで行います。

以下、作業メモです。自分が買ったのはDS718+ですが、他のモデルでも同じだと思います。

目次

<!-- toc -->

### Dockerのインストール

"Package Center" => "Utilities" => "Docker"でInstallボタンをクリック。

<img src="https://user-images.githubusercontent.com/106908/34646095-a35a91be-f3a2-11e7-974c-2678fe88fc30.png" width="400px">

### Minio用のShared Folderの作成

"Control Panel" => "Shared Folder"でCreateボタンをクリック。

"Name"は`minio`にし、ゴミ箱は不要なので"Enable Recycle Bin"のチェックを外しておく。
OKボタンをクリックして作成。"Permission"もデフォルトでOK。

<img src="https://user-images.githubusercontent.com/106908/34646106-f8baccbe-f3a2-11e7-9386-ae1253b87490.png" width="400px">


### Minio用のdataフォルダとconfigフォルダ作成

"File Station" => "minio"を選択 => "Create" => "Create folder"で`data`を入力してフォルダ作成。同様に`config`を入力してフォルダ作成。

<img src="https://user-images.githubusercontent.com/106908/34646130-8d54c6b8-f3a3-11e7-9dfe-cd75fe301edd.png" width="400px">

### Minio Docker Imageのダウンロード

"Main Menu"から"Docker"を開く。

<img src="https://user-images.githubusercontent.com/106908/34646142-da92af26-f3a3-11e7-89c0-20bf3b617fae.png" width="400px">

"Registry"タブをクリックし、"Insert keywords"に`minio`を入力し、`minio/minio`を選択。

<img src="https://user-images.githubusercontent.com/106908/34646147-fee01940-f3a3-11e7-875e-1ab08156cc78.png" width="400px">

"Download"をクリック。Tagは好きなものを選択していいが、ここでは`latest`を使用。

<img src="https://user-images.githubusercontent.com/106908/34646167-32d74502-f3a4-11e7-82fe-4a3232e4f842.png" width="400px">


### Minioの起動

"Image"タブをクリックし、`minio/minio:latest`を選択。

<img src="https://user-images.githubusercontent.com/106908/34646177-90b8d3fc-f3a4-11e7-872e-08c34a9195a3.png" width="400px">

"Launch"ボタンをクリック。"Container Name"に`minio`を入力。

<img src="https://user-images.githubusercontent.com/106908/34646179-a9ab6cda-f3a4-11e7-86ba-deeed3870b08.png" width="400px">

"Advanced Settings"ボタンをクリック。"Enable auto-restart"にチェックを入れる。

<img src="https://user-images.githubusercontent.com/106908/34646185-e10c3448-f3a4-11e7-8ba1-a4556966c1cc.png" width="400px">

"Volume"タブをクリックし、"Add Folder"ボタンをクリック。

`minio/data`を`/data`に、`minio/config`を`/root/.minio`にマウントする。

<img src="https://user-images.githubusercontent.com/106908/34646191-18b5f1ae-f3a5-11e7-9593-f96d6fc1909c.png" width="400px">

"Port Settings"タブをクリックし、"Local Port"に`9000`を入力。

<img src="https://user-images.githubusercontent.com/106908/34646194-48284964-f3a5-11e7-9899-96fe6e3e8299.png" width="400px">

"Environment"タブをクリックし、"Command"に`minio server /data`を入力。

<img src="https://user-images.githubusercontent.com/106908/34646219-9b341dcc-f3a5-11e7-8416-6237738752ca.png" width="400px">

"Apply"ボタンをクリックして"Advanced Settings"ウィンドウを閉じる。

"Next"ボタンクリック => "Apply"ボタンクリックでminioを起動する。

<img src="https://user-images.githubusercontent.com/106908/34646234-24ed4958-f3a6-11e7-81a5-743b904d210f.png" width="400px">


"Container"タブをクリックし、`minio`コンテナが"Running"になっていればOK。

<img src="https://user-images.githubusercontent.com/106908/34646242-4e183716-f3a6-11e7-88e3-d1a4e6ab0151.png" width="400px">


`minio`コンテナをクリックし、"Details"ボタンをクリック。"Log"タブを開くと`AccessKey`と`SecretKey`を確認できる。

<img src="https://user-images.githubusercontent.com/106908/34646267-d4d352b8-f3a6-11e7-9895-635010508837.png" width="400px">


### 動作確認

`http://<Synology NASのIP>:9000`にアクセスすると、UI(Minio Browser)が表示される。

<img src="https://user-images.githubusercontent.com/106908/34646281-039a1294-f3a7-11e7-8fde-ad522e031f00.png" width="400px">


[AWS CLI](https://aws.amazon.com/cli/)からアクセスする。

```
aws configure
```

で`AccessKey`と`SecretKey`を入力。Regionは任意で可。

`foo`バケットを作成し、`hello.txt`をコピーする。

```
$ s3_url=http://<Synology NASのIP>:9000
$ aws --endpoint-url $s3_url s3 mb s3://foo
make_bucket: foo
$ aws --endpoint-url $s3_url s3 ls
2018-01-07 12:38:01 foo
$ echo Hello > ~/hello.txt
$ aws --endpoint-url $s3_url s3 cp ~/hello.txt s3://foo/
upload: ./hello.txt to s3://foo/hello.txt
```

Minio Browserにログインするとコピーしたファイルを確認できる。

<img src="https://user-images.githubusercontent.com/106908/34646316-02cb1c90-f3a8-11e7-9fa7-f356f632c725.png" width="400px">


### HTTPS対応

https://docs.minio.io/docs/generate-let-s-encypt-certificate-using-concert-for-minio

`/minio/config/certs`フォルダを作成し、その下に秘密鍵は`secret.key`、公開鍵は`public.crt`というファイル名でコピーする。

`minio`コンテナの"Restart"ボタンをクリック。

<img src="https://user-images.githubusercontent.com/106908/34646329-a3e78262-f3a8-11e7-8625-423a4591fff4.png" width="400px">

`https://<ドメイン名>:9000`でアクセス可能になる。

<img src="https://user-images.githubusercontent.com/106908/34646383-8ac4fee4-f3a9-11e7-851b-292780d8768a.png" width="400px">


---


[Synology DiskStation](https://www.amazon.co.jp/exec/obidos/ASIN/B074BYFKZ2/ikam-22/ref=nosim/)良い。
