minio/docs/docker/README.md
Nitish Tiwari a8cb43926a Docker guide fix (#3992)
* Update Docker quick start guide

- Add Compose to orchestration section.

- Refer Swarm from Docker quick start guide.

- Add common Docker commands to quick start guide.

* Paragraph cleanup
2017-03-28 13:54:19 -07:00

4.6 KiB

Minio Docker Quickstart Guide Slack Go Report Card Docker Pulls codecov

Prerequisites

Docker installed on your machine. Download the relevant installer from here.

Run Standalone Minio on Docker.

Minio needs a persistent volume to store configuration and application data. However, for testing purposes, you can launch Minio by simply passing a directory (/export in the example below). This directory gets created in the container filesystem at the time of container start. But all the data is lost after container exits.

docker run -p 9000:9000 minio/minio server /export

To create a Minio container with persistent storage, you need to map local persistent directories from the host OS to virtual config ~/.minio and export /export directories. To do this, run the below commands

GNU/Linux and macOS

docker run -p 9000:9000 --name minio1 \
  -v /mnt/export/minio1:/export \
  -v /mnt/config/minio1:/root/.minio \
  minio/minio server /export

Windows

docker run -p 9000:9000 --name minio1 \
  -v D:\export\minio1:/export \
  -v D:\export\minio1-config:/root/.minio \
  minio/minio server /export

Run Distributed Minio on Docker

Distributed Minio can be deployed via Docker Compose or Swarm mode. The major difference between these two being, Docker Compose creates a single host, multi-container deployment, while Swarm mode creates a multi-host, multi-container deployment.

This means Docker Compose lets you quickly get started with Distributed Minio on your computer - ideal for development, testing, staging environments. While deploying Distributed Minio on Swarm offers a more robust, production level deployment.

  • To deploy Distributed Minio on Docker Compose, refer this guide.
  • To deploy Distributed Minio on Docker Swarm, refer this guide.

Minio Docker Tips

Minio Custom Access and Secret Keys

To override Minio's auto-generated keys, you may pass secret and access keys explicitly as environment variables. Minio server also allows regular strings as access and secret keys.

GNU/Linux and macOS

docker run -p 9000:9000 --name minio1 \
  -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -v /mnt/export/minio1:/export \
  -v /mnt/config/minio1:/root/.minio \
  minio/minio server /export

Windows

docker run -p 9000:9000 --name minio1 \
  -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
  -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
  -v D:\export\minio1:/export \
  -v D:\export\minio1-config:/root/.minio \
  minio/minio server /export

Retrieving Container ID

To use Docker commands on a specific container, you need to know the Container ID for that container. To get the Container ID, run

docker ps -a

-a flag makes sure you get all the containers (Created, Running, Exited). Then identify the Container ID from the output.

Starting and Stopping Containers

To start a stopped container, you can use the docker start command.

docker start <container_id>

To stop a running container, you can use the docker stop command.

docker stop <container_id>

Minio container logs

To access Minio logs, you can use the docker logs command.

docker logs <container_id>

Monitor Minio Docker Container

To monitor the resources used by Minio container, you can use the docker stats command.

docker stats <container_id>

Explore Further