解決docker安裝minio容器時,minio容器啟動幾秒後自動退出的一種方法

济楚纯粹自信發表於2024-11-02

筆者在部署minio容器時,遇到了以上問題。起初以為是我埠被佔用或儲存空間不足,經過檢測排除了以上問題。

以下是最初的安裝命令:

docker run -d --name minio --restart=always -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -v /home/data:/data -v /home/config:/root/.minio --network my-net minio/minio:RELEASE.2021-06-17T00-10-46Z server /data
透過查閱多篇blog,得知MINIO_ACCESS_KEY至少需要5位,MINIO_SECRET_KEY最少要8位。且需要為minio容器配置一個靜態埠。
在檢查後修改為如下命令:

docker run -d --name minio --restart=always -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio" -v /home/data:/data -v /home/config:/root/.minio --network my-net minio/minio:RELEASE.2021-06-17T00-10-46Z server /data --console-address ":9000" --address ":9090"
仍然無法解決問題,minio容器還是隻能在建立之後的不到一秒內執行,隨即停止且重啟無效。
再查,得知某個版本過後的minio容器在首次啟動時使用MINIO_ROOT_USER和MINIO_ROOT_PASSWORD進行鑑權,且預設情況下會使用映象內部的minio-client進行配置。可以在docker run指令中手動跳過該配置。另外,一開始拉取的minio映象是三年前釋出的。minio更新的速度感覺挺快,不知道跟版本有沒有關係。於是我拉取成了最新的映象。
得到如下指令:

docker run -d --name minio --restart=always -p 9000:9000 --env MINIO_ROOT_USER="minio" --env MINIO_ROOT_PASSWORD="minio123" --env MINIO_SKIP_CLIENT="yes" -v /root/minio/minio-data:/data -v /root/minio/minio-config:/root/.minio --network my-net minio/minio server /data --console-address ":9000" --address ":9001"
此時minio容器執行在虛擬機器的9000埠。經過檢驗,此時的minio容器能夠正常持續執行。

但是這個命令只把容器內的9000埠對映到主機的9000埠,而沒有把9001埠對映到主機。而我又指定了控制檯是9000埠、主服務是9001埠。所以找到了錯誤:沒有在對映的主機上指定外界訪問和上傳的埠。解決方法是指定一個console埠和一個主服務的埠。
最後指令如下:

docker run -d --name minio --restart=always -p 9000:9000 -p 9001:9001 --env MINIO_ROOT_USER="minio" --env MINIO_ROOT_PASSWORD="minio123" --env MINIO_SKIP_CLIENT="yes" -v /root/minio/minio-data:/data -v /root/minio/minio-config:/root/.minio --network hm-net minio/minio server /data --console-address ":9000" --address ":9001"
現在能透過9000埠正常訪問控制檯,也能透過9001埠正常上傳檔案。

相關文章