storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/docs/zh_CN/docker/README.md (about) 1 # MinIO Docker 快速入门 [](https://slack.min.io) [](https://hub.docker.com/r/minio/minio/) 2 3 ## 前提条件 4 您的机器已经安装docker. 从 [这里](https://www.docker.com/community-edition#/download)下载相关软件。 5 6 ## 在Docker中运行MinIO单点模式。 7 MinIO 需要一个持久卷来存储配置和应用数据。不过, 如果只是为了测试一下, 您可以通过简单地传递一个目录(在下面的示例中为`/ data`)启动MinIO。这个目录会在容器启动时在容器的文件系统中创建,不过所有的数据都会在容器退出时丢失。 8 9 ```sh 10 docker run -p 9000:9000 \ 11 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 12 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 13 minio/minio server /data 14 ``` 15 16 要创建具有永久存储的MinIO容器,您需要将本地持久目录从主机操作系统映射到虚拟配置`~/.minio` 并导出`/data`目录。 为此,请运行以下命令 17 18 #### GNU/Linux 和 macOS 19 ```sh 20 docker run -p 9000:9000 \ 21 --name minio1 \ 22 -v /mnt/data:/data \ 23 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 24 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 25 minio/minio server /data 26 ``` 27 28 #### Windows 29 ```sh 30 docker run -p 9000:9000 \ 31 --name minio1 \ 32 -v D:\data:/data \ 33 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 34 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 35 minio/minio server /data 36 ``` 37 38 ## 在Docker中运行MinIO分布式模式 39 分布式MinIO可以通过 [Docker Compose](https://docs.min.io/cn/deploy-minio-on-docker-compose) 或者 [Swarm mode](https://docs.min.io/cn/deploy-minio-on-docker-swarm)进行部署。这两者之间的主要区别是Docker Compose创建了单个主机,多容器部署,而Swarm模式创建了一个多主机,多容器部署。 40 41 这意味着Docker Compose可以让你快速的在你的机器上快速使用分布式MinIO-非常适合开发,测试环境;而Swarm模式提供了更健壮,生产级别的部署。 42 43 ## MinIO Docker提示 44 45 ### MinIO自定义Access和Secret密钥 46 要覆盖MinIO的自动生成的密钥,您可以将Access和Secret密钥设为环境变量。 MinIO允许常规字符串作为Access和Secret密钥。 47 48 #### GNU/Linux 和 macOS 49 ```sh 50 docker run -p 9000:9000 --name minio1 \ 51 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 52 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 53 -v /mnt/data:/data \ 54 minio/minio server /data 55 ``` 56 57 #### Windows 58 ```powershell 59 docker run -p 9000:9000 --name minio1 \ 60 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 61 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \ 62 -v D:\data:/data \ 63 minio/minio server /data 64 ``` 65 66 ### 以普通用户身份运行MinIO Docker 67 Docker提供了标准化的机制,可以以非root用户身份运行docker容器。 68 69 #### GNU/Linux 和 macOS 70 在 Linux 和 macOS 上, 你可以使用 `--user` 以普通用户身份来运行容器。 71 72 > 注意: 在使用`--user`前,一定要确保--user指定的用户具备 *${HOME}/data* 的写入权限。 73 ```sh 74 mkdir -p ${HOME}/data 75 docker run -p 9000:9000 \ 76 --user $(id -u):$(id -g) \ 77 --name minio1 \ 78 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 79 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \ 80 -v ${HOME}/data:/data \ 81 minio/minio server /data 82 ``` 83 84 #### Windows 85 在windows上, 你需要用到 [Docker集成Windows身份验证](https://success.docker.com/article/modernizing-traditional-dot-net-applications#integratedwindowsauthentication) 和 [创建具有Active Directory支持的容器](https://blogs.msdn.microsoft.com/containerstuff/2017/01/30/create-a-container-with-active-directory-support/) 的能力 86 87 > 注意: 在使用`credentialspec=`时,要确保你的AD/Windows用户具备 *D:\data* 的写入权限。 88 89 ```powershell 90 docker run -p 9000:9000 \ 91 --name minio1 \ 92 --security-opt "credentialspec=file://myuser.json" 93 -e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \ 94 -e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY" \ 95 -v D:\data:/data \ 96 minio/minio server /data 97 ``` 98 99 ### 使用Docker secrets进行MinIO Access和Secret密钥自定义 100 要覆盖MinIO的自动生成的密钥,你可以把secret和access秘钥创建成[Docker secrets](https://docs.docker.com/engine/swarm/secrets/). MinIO允许常规字符串作为Access和Secret密钥。 101 102 ``` 103 echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key - 104 echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key - 105 ``` 106 107 使用`docker service`创建MinIO服务,并读取Docker secrets。 108 ``` 109 docker service create --name="minio-service" --secret="access_key" --secret="secret_key" minio/minio server /data 110 ``` 111 112 更多 `docker service`信息,请访问 [这里](https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/) 113 114 #### 自定义MinIO Access和Secret密钥文件 115 要使用其他密钥名称,请把上面的`access_key` 和 `secret_key`替换为你自定义的名称(比如`my_secret_key`,`my_custom_key`)。使用如下命令运行服务 116 ``` 117 docker service create --name="minio-service" \ 118 --secret="my_access_key" \ 119 --secret="my_secret_key" \ 120 --env="MINIO_ROOT_USER_FILE=my_access_key" \ 121 --env="MINIO_ROOT_PASSWORD_FILE=my_secret_key" \ 122 minio/minio server /data 123 ``` 124 125 ### 获取容器ID 126 在容器中使用Docker命令, 你需要知道这个容器的 `容器ID` 。 为了获取 `Container ID`, 运行 127 128 ```sh 129 docker ps -a 130 ``` 131 132 `-a` flag 确保你获取所有的容器(创建的,正在运行的,退出的),然后从输出中识别`Container ID`。 133 134 ### 启动和停止容器 135 启动容器,你可以使用 [`docker start`](https://docs.docker.com/engine/reference/commandline/start/) 命令。 136 137 ```sh 138 docker start <container_id> 139 ``` 140 141 停止一下正在运行的容器, 使用 [`docker stop`](https://docs.docker.com/engine/reference/commandline/stop/) 命令。 142 ```sh 143 docker stop <container_id> 144 ``` 145 146 ### MinIO容器日志 147 获取MinIO日志,使用 [`docker logs`](https://docs.docker.com/engine/reference/commandline/logs/) 命令。 148 149 ```sh 150 docker logs <container_id> 151 ``` 152 153 ### 监控MinioDocker容器 154 监控MinIO容器使用的资源,使用 [`docker stats`](https://docs.docker.com/engine/reference/commandline/stats/) 命令. 155 156 ```sh 157 docker stats <container_id> 158 ``` 159 160 ## 了解更多 161 162 163 * [在Docker Compose上部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-compose) 164 * [在Docker Swarm上部署MinIO](https://docs.min.io/cn/deploy-minio-on-docker-swarm) 165 * [分布式MinIO快速入门](https://docs.min.io/cn/distributed-minio-quickstart-guide) 166 * [MinIO纠删码模式快速入门](https://docs.min.io/cn/minio-erasure-code-quickstart-guide) 167