minioの構築
ラズパイでAWSのS3互換のオブジェクトストレージであるminioを構築する方法です。
公式リポジトリで、既にラズパイ対応されていますので、単なるメモ書きになります。
1. 公式リポジトリをクローン
minio
の公式リポジトリをクローンします。
git clone https://github.com/minio/minio.git
2. ラズパイ用のコンテナイメージをビルド
公式リポジトリにある、Dockerfile.armhf
を使用してコンテナイメージをビルドします。
cd minio
docker build -t armhf/minio -f Dockerfile.armhf .
以下のようにDockerイメージがビルドされます。
$ docker images
REPOSITORY TAG IMAGE ID
CREATED SIZE
armhf/minio latest 861b9a9d094c
6 minutes ago 39.9MB
3. Minio クライアントをビルド
同時にminio
クライアントも公式リポジトリからクローンしてビルドしておきます。
git clone https://github.com/minio/mc.git
cd mc
docker build -t armhf/mc -f Dockerfile.release.armhf .
以下のようにDockerイメージがビルドされます。
$ docker images
REPOSITORY TAG IMAGE ID
CREATED SIZE
armhf/mc latest 67541621fb90
10 minutes ago 24.2MB
このmcを実行すると、以下のように表示されます。ここではヘルプを表示しています。
# docker run -it armhf/mc mc -h
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
NAME:
mc - Minio Client for cloud storage and filesystems.
USAGE:
mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
ls List files and folders.
mb Make a bucket or a folder.
cat Display file and object contents.
pipe Redirect STDIN to an object or file or STDOUT.
share Generate URL for sharing.
cp Copy files and objects.
mirror Mirror buckets and folders.
diff Show differences between two folders or buckets.
rm Remove files and objects.
events Manage object notifications.
watch Watch for files and objects events.
policy Manage anonymous access to objects.
admin Manage Minio servers
session Manage saved sessions for cp and mirror commands.
config Manage mc configuration file.
update Check for a new software update.
version Print version info.
GLOBAL FLAGS:
--config-folder value, -C value Path to configuration folder. (default: "/root/.mc")
--quiet, -q Suppress chatty console output.
--no-color Disable color theme.
--json Enable JSON formatted output.
--debug Enable debug output.
--insecure Disable SSL certificate verification.
--help, -h Show help.
VERSION:
2017-06-15T03:38:43Z
4. Minioの起動
作成されたDockerイメージを、以下のようにして起動します。
docker run -d --rm --name minio -p 9000:9000 \
-v $(pwd)/minio:/export \
armhf/minio server /export
ここではカレントディレクトリにあるminio
ディレクトリをminio
の/export
として実際のオブジェクトストレージとして使用しています。
起動したMinioのログを参照します。
5. Minioの利用
Minioをブラウザから利用することができます。この場合 9000/tcp で起動していますので、以下のようにアクセスします。
$ docker logs minio
Created minio configuration file successfully at /root/.minio
Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000
AccessKey: Z4JEKUK5DNLCU9O4OWMY
SecretKey: lcnHjtD9WXmw/Z0dcdZs4owMlLKbEQ+WS2g5qI9S
Browser Access:
http://172.17.0.2:9000 http://127.0.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://172.17.0.2:9000 Z4JEKUK5DNLCU9O4OWMY lcnHjtD9WXmw/Z0dcdZs4owMlLKbEQ+WS2g5qI9S
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
.NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
Drive Capacity: 4.2 GiB Free, 49 GiB Total
ここで表示されている、AccessKey
とSecretKey
でMinioを利用することができます。
ブラウザから、以下のようにアクセスして上記のAccessKey
とSecretKey
でMinioにログインすることができます。
http://localhost:9000/
6. メモ
以上、とりあえずラズパイでMinio
を利用するためのメモ書きです。