Colab中如何临时使用udocker(以MinIO为例)
- 本文主要是想记录一下自己在Colab中用udocker启动一个MinIO的容器的过程。
1. 命令行配置环境
由于目前没有用到GPU,所以我选择的是CPU的环境。(内存12G)
然后就可以在命令行里安装udocker了,并配置minio的环境
# 由于minio需要做两个端口映射,分别是9000和9001,因此需要先判断一下这两个端口号是否被占用。lsof -i:9000 # 9000端口发现被占用了,所以后期只能将minio的9000端口映射到其他端口号上了,我发现9002违背占用,因此后期映射到9002lsof -i:9001 # 没有输出,表示没有被占用# 安装udockerpip 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 Miniofrom minio.error import S3Errortry: 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