2018年7月12日木曜日

Dockerでminio、awscliをインストールしたコンテナを構築する

minioはAWS S3互換のAPIを持つオブジェクトストレージです。

〇minioの画面


構築方法

1.以下のコマンドで、awscliがインストールされたイメージを作成します。
docker build -t awscli .

Dockerfile
FROM python:3.6-alpine3.7

RUN mkdir /work \
  && pip install awscli
VOLUME /work
WORKDIR /work
CMD ["/bin/sh"]

2.以下のコマンドで、minioを起動しawscliが実行可能なコンテナに入ります。
docker-compose run awscli

docker-compose.yml
version: "2"
services:
  storage:
    image: minio/minio
    container_name: "storage"
    ports:
      - "9000:9000"
    volumes:
      - "storage-data:/data"
    environment:
      MINIO_ACCESS_KEY_FILE: test_access_key
      MINIO_SECRET_KEY_FILE: test_secret_key
  awscli:
    image: awscli
    container_name: "awscli"
    command: /bin/sh
    stdin_open: true
    tty: true
    volumes:
      - ".:/work"
    depends_on:
      - storage
volumes:
  storage-data:
    driver: local

3.awscliコンテナ内でのコマンド実行例

〇awsコマンド実行前に以下を実行
export AWS_ACCESS_KEY_ID=test_access_key
export AWS_SECRET_ACCESS_KEY=test_secret_key

〇バケットの作成
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 mb s3://testbucket1

〇ローカルファイルをminioにコピー
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 cp ファイル名 s3://testbucket1

〇バケット内の一覧表示
aws --endpoint-url http://<Dockerホスト名またはIP>:9000/ s3 ls s3://testbucket1


関連情報

・Minioのgithubリポジトリ
https://github.com/minio/minio

・Minioに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿