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 用于访问。

  • 但是,最好在 终端的命令行 中运行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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90660.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rt-thread 5.2.1 基于at-start-f437开发过程记录

基于rt-thread 5.2.1 bsp/at/at32f437-start进行开发,记录详细过程,包括中间遇到的各种坑。 at32f437-start原理图 自己设计的电路板主要换了一块小封装的同系列芯片, 目标是移植opENer。 1. 开发环境 env长时间不用,有点忘了。这次新下载…

EMCCD相机与电可调变焦透镜的同步控制系统设计与实现

EMCCD相机与电可调变焦透镜的同步控制系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 摘要 本文详细介绍了基于Python的EMCCD相机&#xff0…

前缀和-560.和为k的子数组-力扣(LeetCode)

一、题目解析1.子数组是数组中元素的连续非空序列2.nums[i]范围为[-1000,1000],存在负数3.由于2的题目条件,该题不能用双指针算法,不具备单调性 二、算法原理解法1:暴力解法->枚举 O(N^2)固定一个值,向后枚举数组和…

解决企业微信收集表没有图片、文件组件,不能收集图片的问题

问题: 企业微信里面的收集表功能,有一个图片收集的收集表,但是插入的组件没有收集图片的组件? 原因: 大概率是微盘未启用 解决方法: 1、登陆企业微信管理后台 企业微信 2、访问微盘页面,…

认识单片机

《认识单片机》课程内容 一、课程导入 在我们的日常生活中,有很多看似普通却充满智慧的小物件。比如家里的智能电饭煲,它能精准地控制煮饭的时间和温度,让米饭煮得香喷喷的;还有楼道里的声控灯,当有人走过发出声音时&a…

数据结构(2)顺序表算法题

一、移除元素1、题目描述2、算法分析 思路1:查找val值对应的下标pos,执行删除pos位置数据的操作。该方法时间复杂度为O(n^2),因此不建议使用。思路2:创建新数组(空间大小与原数组一致&#xff0…

汽车电子架构

本文试图从Analog Devices官网中的汽车解决方案视角带读者构建起汽车电子的总体架构图,为国内热爱和从事汽车电子行业的伙伴们贡献一份力量。 一 、汽车电子架构总览 整个汽车电子包括四个部分:车身电子(Body Electronics)、座舱与…

pycharm 2025 专业版下载安装教程【附安装包】

安装之前,请确保已经关闭所有安全软件(如杀毒软件、防火墙等)安装包 👇链接:https://pan.xunlei.com/s/VOU-5_L1KOH5j3zDaaCh-Z28A1# 提取码:6bjy下载 PyCharm2025专业版 安装包 并 进行解压运行 pycharm-2…

在 Java 世界里让对象“旅行”:序列化与反序列化

Java 生态里关于 JSON 的序列化与反序列化(以下简称“序列化”)是一个久经考验的话题,却常因框架繁多、配置琐碎而让初学者望而却步。本文将围绕一段极简的 JsonUtils 工具类展开,以 FastJSON 与 Jackson 两大主流实现为例&#x…

High Speed SelectIO Wizard ip使用记录

本次实验的目的是通过VU9P开发板的6个TG接口,采用固定连接的方式,即X和X-维度互联,其框图如下所示:IP参数配置通过调用High Speed SelectIO Wizard来实现数据通路,High Speed SelectIO Wizard ip有24对数据通道&#x…

Execel文档批量替换标签实现方案

问题背景需求:俺现网班级作为维度,批量导出每个班级学员的数据,excel的个数在1k左右,每一张表的人数在90左右。导出总耗时在10小时左右。代码编写完成并导出现网数据后,发现导出的标题错了。解决方案1.通过修改代码&am…

SpringBoot配置多数据源多数据库

Springboot支持配置多数据源。默认情况,在yml文件中只会配置一个数据库。如果涉及到操作多个数据库的情况,在同实例中(即同一个ip地址下的不同数据库),可以采用数据库名点数据库表的方式,实现跨库表的操作。…

Rocky9.4部署Zabbix7

一、配置安装源 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm ​ yum clean all 二、安装Zabbix server,Web前端,agent yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf z…

【Java】对象类型转换(ClassCastException)异常:从底层原理到架构级防御,老司机的实战经验

在开发中,ClassCastException(类转换异常)就像一颗隐藏的定时炸弹,常常在代码运行到类型转换逻辑时突然爆发。线上排查问题时,这类异常往往因为类型关系复杂而难以定位。多数开发者习惯于在转换前加个instanceof判断就…

探路者:用 AI 面试加速人才集结,为户外爱好者带来更专业的服务

作为深耕户外用品领域的知名品牌,探路者已构建起覆盖全国的销售服务网络,上千品种的产品矩阵更是为品牌在市场中站稳脚跟提供了有力支撑。对探路者来说,要持续为户外爱好者带来专业且贴心的体验,专业人才是核心支撑。然而&#xf…

LeetCode——面试题 05.01 插入

通过万岁!!! 题目:一共会给四个数,分别是N、M、i、j,然后希望我们把N和M抓怒换为2进制以后,将M的二进制放在i到j之间的区域,如果M的二进制长度小于i-j1,则前面补0即可。最…

前端设计中如何在鼠标悬浮时同步修改块内样式

虽然只是一个小问题,但这个解决问题的过程也深化了自己对盒子模型的理解问题缘起正在写一个登录注册的小窗口,想要在鼠标悬浮阶段让按钮和文字都变色,但是发现实操的时候按钮和文字没办法同时变色鼠标悬停前鼠标悬停后问题分析仔细分析了下该…

航空发动机高速旋转件的非接触式信号传输系统

航空发动机是飞机动力系统的核心,各种关键部件如涡轮、压气机等,经常处于极端高温、高速旋转的工作环境中。航空发动机内的传感器数据,如何能够稳定可靠的通过无线的方式传输到检测太,一直是业内的一个难点和痛点。在这个领域&…

【postgresql按照逗号分割字段,并统计数量和求和】

postgresql按照逗号分割字段,并统计数量和求和postgresql按照逗号分割字段,并统计数量和求和postgresql按照逗号分割字段,并统计数量和求和 SELECT ucd, p ,tm, step, unitcd, tm_end from resource_calc_scene_rain_bound_value_plus whe…

「iOS」————继承链与对象的结构

iOS学习前言对象的底层结构isa的类型isa_tobjc_class & objc_object类信息的静态与动态存储(ro、rw、rwe机制)cachebits继承链isKindOfClass和isMemberOfClassisKindOfClass:isMemberofClass前言 对 对象底层结构的相关信息有点遗忘,简略…