在Docker中运行MinIO -- springboot实战电商项目mall4j

在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}/data
docker 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 

停止一下正在运行的容器, 使用 docker stop 命令。

docker stop 

MinIO容器日志

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

docker logs 

监控MinioDocker容器

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

docker stats 

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

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

1. 前提条件

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

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

GNU/Linux and macOS

docker-compose pull
docker-compose up

Windows

docker-compose.exe pull
docker-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)

你可能感兴趣的:(在Docker中运行MinIO -- springboot实战电商项目mall4j)