storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/docs/zh_CN/docker/README.md (about)

     1  # MinIO Docker 快速入门 [![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io)  [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](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