乐趣区

关于docker:在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 <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 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)

退出移动版