当前位置: 首页 > news >正文

Colab中如何临时使用udocker(以MinIO为例)

  • 本文主要是想记录一下自己在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 用于访问。
    在这里插入图片描述

  • 仔细观察输出信息,它通常会直接显示类似 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
http://www.dtcms.com/a/297240.html

相关文章:

  • 华为云DRS实现Oracle到GaussDB数据库迁移的全流程技术方案
  • Android Studio 自带的官方模拟器,ABI这一列是x86_64,xABI这一列是arm64-v8a
  • 【面试场景题】外卖点餐系统设计思路
  • mysql 和oracle的选择
  • Android Studio 2024 内嵌 Unity 3D 开发示例
  • Oracle转Mysql建表脚本
  • Android studio自带的Android模拟器都是x86架构的吗,需要把arm架构的app翻译成x86指令?
  • 【Android Studio】安装Trae插件后Android Studio 启动崩溃问题处理
  • 瑞萨电子RA-T MCU系列新成员RA2T1——电机控制专家
  • CPU(中央处理器)和GPU(图形处理器)的区别
  • vscode npm run build打包报ELIFECYCLE
  • 一文解析公平锁、非公平锁、悲观锁、乐观锁、可重入锁和锁的升级(含详细代码实例)
  • MJ11032G和MJ11033G是对管由onsemi/安森美公司研发的一款高性能、低功耗的达林顿晶体管
  • 能源管理网页的碳中和视觉语言:数据图表中的环保色彩体系创新
  • 基于51单片机的光照强度检测系统Protues仿真设计
  • 卸油管连接检测误报率↓78%:陌讯多模态融合算法实战解析
  • 信息学奥赛一本通 1593:【例 2】牧场的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G
  • 机器学习——KNN算法
  • SpringBoot与ApacheSpark、MyBatis实战整合
  • DeepSeek FlashMLA 技术拆解,AI 推理迎来颠覆性突破
  • 黑马点评常见面试题
  • Apache Ranger 权限管理
  • Python之--字典
  • CMake进阶: 检查函数/符号存在性、检查类型/关键字/表达式有效性和检查编译器特性
  • LP-MSPM0G3507学习--11ADC之二双通道高速DMA采样
  • rtpengine的docker化
  • Linux进程信号——信号保存
  • 在幸狐RV1106板子上用gcc14.2本地编译安装ssh客户端/服务器、vim编辑器、sl和vsftpd服务器
  • OSI 七层模型和五层模型
  • Vue3 学习教程,从入门到精通,Vue3 监听属性(Watchers)语法知识点及案例代码(16)