在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_key
和 secret_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)