- 本文主要是想記錄一下自己在Colab中用udocker啟動一個MinIO的容器的過程。
1. 命令行配置環境
由于目前沒有用到GPU,所以我選擇的是CPU的環境。(內存12G)
然后就可以在命令行里安裝udocker了,并配置minio的環境
# 由于minio需要做兩個端口映射,分別是9000和9001,因此需要先判斷一下這兩個端口號是否被占用。
lsof -i:9000 # 9000端口發現被占用了,所以后期只能將minio的9000端口映射到其他端口號上了,我發現9002違背占用,因此后期映射到9002
lsof -i:9001 # 沒有輸出,表示沒有被占用# 安裝udocker
pip install udockerudocker --allow-root install# 搜索鏡像
udocker --allow-root search minio # 需要在udocker后面加上 --allow-root
# 拉取鏡像
udocker --allow-root pull minio/minio
# 查看鏡像
udocker --allow-root images
# 創建一個容器
udocker --allow-root create --name=minio-server minio/minio
# 查看已經創建的容器
udocker --allow-root ps
# 創建所需的文件夾,后期用于目錄映射
mkdir -p /content/minio/data# 創建一個自己的容器
udocker --allow-root run \-e MINIO_ROOT_USER=micheal \-e MINIO_ROOT_PASSWORD=micheal123456 \-p 9002:9000 \-p 9001:9001 \-v /content/minio/data:/data \minio-server server /data --console-address ":9001"
上述腳本說明:
- -e:表示設置環境變量
--env
- -p:表示端口號映射,
本機端口號:容器端口號
- -v:目錄映射
如果你想要容器后端啟動,則可以將創建容器的命令寫入到一個xxx.sh的腳本中,然后用如下命令運行:
nohup bash ./xxx.sh > minio.log 2>&1 &
此時,可以通過lsof -i:9002
命令來查看是否啟動起來了,如果未啟動,則可以查看minio.log日志中的報錯信息。(正常情況下,日志如下)
進階操作
此時,你肯定會想通過localhost:9001
查看一下webUI界面。但是呢,此時你通過ifconfig
得到的也只是局域網的IP,公網無法訪問。
于是乎,你可以借助 Localtunnel,來將colab服務端口暴露到公網訪問。
-
可以在 Colab 單元格中運行
!npx localtunnel --port 9001
。 運行后,它會提供一個公共 URL 用于訪問。 -
但是,最好在 終端的命令行 中運行
npx localtunnel --port 9001
,因為該命令運行會持續運行。或者也可以用nohup啟動該命令
-
仔細觀察輸出信息,它通常會直接顯示類似 your url is: https://xxxxxx.loca.lt 的信息。
-
如果需要你提供Tunnel Password時,你可以輸入:
!curl https://loca.lt/mytunnelpassword
進行查詢
2. python測試
# 安裝對應的庫文件
!pip install minio
# 測試鏈接
from minio import Minio
from minio.error import S3Error
try:client = Minio('0.0.0.0:9002',access_key='micheal',secret_key='micheal123456',secure=False)found = client.bucket_exists("temp")
except S3Error as e:print("error:", e)
print(found)# 返回布爾值 True or False