在Docker中运行MinIO。

springboot实战电商我的项目mall4j (https://gitee.com/gz-yami/mall4j)

MinIO 须要一个长久卷来存储配置和利用数据。不过, 如果只是为了测试一下, 您能够通过简略地传递一个目录(在上面的示例中为/ data)启动MinIO。这个目录会在容器启动时在容器的文件系统中创立,不过所有的数据都会在容器退出时失落。

docker run -p 9000:9000 \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \  minio/minio server /data

要创立具备永恒存储的MinIO容器,您须要将本地长久目录从主机操作系统映射到虚构配置~/.minio 并导出/data目录。 为此,请运行以下命令

GNU/Linux 和 macOS

docker run -p 9000:9000 \  --name minio1 \  -v /mnt/data:/data \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \  minio/minio server /data

Windows

docker run -p 9000:9000 \  --name minio1 \  -v D:\data:/data \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \  minio/minio server /data

Docker Compose容许定义和运行单主机,多容器Docker应用程序。

应用Compose,您能够应用Compose文件来配置MinIO服务。 而后,应用单个命令,您能够通过你的配置创立并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建设基于分布式MinIO的开发,测试和预公布环境的好办法。

MinIO Docker提醒

MinIO自定义Access和Secret密钥

要笼罩MinIO的主动生成的密钥,您能够将Access和Secret密钥设为环境变量。 MinIO容许惯例字符串作为Access和Secret密钥。

GNU/Linux 和 macOS

docker run -p 9000:9000 --name minio1 \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \  -v /mnt/data:/data \  minio/minio server /data

Windows

docker run -p 9000:9000 --name minio1 \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \  -v D:\data:/data \  minio/minio server /data

以普通用户身份运行MinIO Docker

Docker提供了标准化的机制,能够以非root用户身份运行docker容器。

GNU/Linux 和 macOS

在 Linux 和 macOS 上, 你能够应用 --user 以普通用户身份来运行容器。

留神: 在应用--user前,肯定要确保--user指定的用户具备 ${HOME}/data 的写入权限。
mkdir -p ${HOME}/datadocker run -p 9000:9000 \  --user $(id -u):$(id -g) \  --name minio1 \  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \  -v ${HOME}/data:/data \  minio/minio server /data

Windows

在windows上, 你须要用到 Docker集成Windows身份验证 和 创立具备Active Directory反对的容器 的能力

留神: 在应用credentialspec=时,要确保你的AD/Windows用户具备 D:\data 的写入权限。
docker run -p 9000:9000 \  --name minio1 \  --security-opt "credentialspec=file://myuser.json"  -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \  -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \  -v D:\data:/data \  minio/minio server /data

应用Docker secrets进行MinIO Access和Secret密钥自定义

要笼罩MinIO的主动生成的密钥,你能够把secret和access秘钥创立成Docker secrets. MinIO容许惯例字符串作为Access和Secret密钥。

echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key -echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key -

应用docker service创立MinIO服务,并读取Docker secrets。

docker service create --name="minio-service" --secret="access_key" --secret="secret_key" minio/minio server /data

更多 docker service信息,请拜访 这里

自定义MinIO Access和Secret密钥文件

要应用其余密钥名称,请把下面的access_keysecret_key替换为你自定义的名称(比方my_secret_key,my_custom_key)。应用如下命令运行服务

docker service create --name="minio-service" \  --secret="my_access_key" \  --secret="my_secret_key" \  --env="MINIO_ROOT_USER_FILE=my_access_key" \  --env="MINIO_ROOT_PASSWORD_FILE=my_secret_key" \  minio/minio server /data

获取容器ID

在容器中应用Docker命令, 你须要晓得这个容器的 容器ID 。 为了获取 Container ID, 运行

docker ps -a

-a flag 确保你获取所有的容器(创立的,正在运行的,退出的),而后从输入中辨认Container ID

启动和进行容器

启动容器,你能够应用 docker start 命令。

docker start <container_id>

进行一下正在运行的容器, 应用 docker stop 命令。

docker stop <container_id>

MinIO容器日志

获取MinIO日志,应用 docker logs 命令。

docker logs <container_id>

监控MinioDocker容器

监控MinIO容器应用的资源,应用 docker stats 命令.

docker stats <container_id>

Docker Compose容许定义和运行单主机,多容器Docker应用程序。

应用Compose,您能够应用Compose文件来配置MinIO服务。 而后,应用单个命令,您能够通过你的配置创立并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建设基于分布式MinIO的开发,测试和预公布环境的好办法。

1. 前提条件

  • 相熟 Docker Compose.
  • Docker曾经在本机装置,从这里下载相干的装置器。

2. 在Docker Compose上运行分布式MinIO

在Docker Compose上部署分布式MinIO,请下载docker-compose.yaml到你的当前工作目录。Docker Compose会pull MinIO Docker Image,所以你不须要手动去下载MinIO binary。而后运行上面的命令

GNU/Linux and macOS

docker-compose pulldocker-compose up

Windows

docker-compose.exe pulldocker-compose.exe up

当初每个实例都能够拜访,端口从9001到9004,请在浏览器中拜访http://127.0.0.1:9001/

注意事项

  • 默认状况下Docker Compose file应用的是最新版的MinIO server的Docker镜像,你能够批改image tag来拉取指定版本的MinIO Docker image.
  • 默认状况下会创立4个minio实例,你能够增加更多的MinIO服务(最多总共16个)到你的MinIO Compose deployment。增加一个服务

    • 复制服务定义并适当地更改新服务的名称。
    • 更新每个服务中的命令局部。
    • 更新要为新服务公开的端口号。 另外,请确保调配给新服务的端口尚未应用。
  • Docker compose file中的MinIO服务应用的端口是9001到9004,这容许多个服务在主机上运行。

springboot实战电商我的项目mall4j (https://gitee.com/gz-yami/mall4j)