IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Singularity 快速上手 带你飞 -> 正文阅读

[系统运维]Singularity 快速上手 带你飞

Singularity介绍

Singularity 是一种容器技术,用户可以在本地将软件打包成镜像,上传到服务器上运行。因为用户在本地计算机上拥有root权限,在制作软件的容器镜像时也拥有root权限,在部署安装应用的时候更加灵活。

(我在落地算法的时候需要用到ROS,使用学校的超算资源部署环境的时候,无法获得sudo权限。故悲惨打工人只能自己查阅资料,发现可以用集群可以提供的Singularity解决,所以开始自学,大家多多指教!)

先用ubuntu:16.04镜像体验一下如何使用singularity

获取镜像:

首先, 从Singularity Hub 或者 Docker Hub 获取 预编译镜像

$ singularity pull ubuntu:16.04  # 根据需要选择版本

之后就可以在当前目录下得到 ubuntu_16.04.sif 文件。

运行镜像:

可以使用 shell 命令连接到容器中运行命令。

$ singularity shell ubuntu_16.04.sif
Singularity> pwd
/home/tutuzi

创建实例:

简单创建两个实例,成功后会显示 instance started successfully

$ singularity instance start ubuntu_16.04.sif test1
$ singularity instance start ubuntu_16.04.sif test2

查看实例:

可以查看各实例对应的 DAEMON NAME, PID, CONTAINER IMAGE 信息。

$ singularity instance list

停止实例:

停止之前创建的 test1 和 test2 两个实例。

$ singularity instance stop test1
$ singularity instance stop test2

以 ubuntu16.04作为基础镜像创建容器

具体步骤参见:这篇说明:运行Singularity

相关的注解说明和我本人实践过程中遇到的问题以及对应的解决方案如下:

安装singularity(本地计算机)部分:

  • 只能在 Linux 系统安装使用 singularity, 我本人拥有root权限的电脑是win10系统,所以需要使用虚拟机才创建镜像。
    (如果也需要进行本步骤所需的安装和配置,可参照以下步骤,巨详细,均亲测有效!!)
ITEMREFERENCE
VMware Workstation Pro v16https://www.ruanhuicn.com/soft/vmware-workstation-pro.html
Ubuntu18.04 isohttp://mirrors.aliyun.com/ubuntu-releases/18.04/
推荐这个:CentOS7http://mirrors.aliyun.com/centos/7/isos/x86_64/
在VMware 上安装 Ubuntuhttps://cloud.tencent.com/developer/article/1571849
#安装依赖:
sudo yum install -y gcc libuuid-devel squashfs-tools openssl-devel

#安装go
export VERSION=1.15 OS=linux ARCH=amd64   
wget https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz 
sudo tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz
sudo rm -f go$VERSION.$OS-$ARCH.tar.gz
sudo vim /etc/profile
#添加 export PATH=/usr/local/go/bin:$PATH
source /etc/profile
sudo vim /etc/sudoers
#添加 /usr/local/go/bin/ 到 Defaults secure_path

#安装singularity,这里的安装版本为3.6.2 
export VERSION=3.6.2 
wget https://github.com/hpcng/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz 
tar -xzf singularity-${VERSION}.tar.gz
cd singularity
./mconfig
cd builddir/
sudo make && sudo make install
sudo rm -rf singularity*

制作singularity镜像:

参考官方文档:https://singularity.hpcng.org/user-docs/3.2/quick_start.html#singularity-definition-files

Singularity v3.0 and above produces immutable images in the Singularity Image File (SIF) format. This ensures reproducible and verifiable images and allows for many extra benefits such as the ability to sign and verify your containers.

创建sandbox的方法制作镜像:

su
singularity build --sandbox ./tutu_box docker://ubuntu:16.04
singularity shell -w ./tutu_box
apt-get -y update
apt-get -y install python2-minimal python-dev

安装ROS 可以参考官网 http://wiki.ros.org/kinetic/Installation/Ubuntu.

  • Configure your Ubuntu repositories:
    # apt-get install software-properties-common
    add-apt-repository universe
    add-apt-repository multiverse
    add-apt-repository restricted
    apt-get update
    
  • Setup your sources.list:
    sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    
  • Setup your keys:
    apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    
  • Installation:
    apt-get update
    apt-get install ros-kinetic-desktop-full
    
  • Environment setup:
    echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    
  • Dependencies for building packages
      apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
    
      rosdep init
      rosdep update
    

接下来我们讲使用 定义文件 来创建 SIF 容器环境 (ROS):

A Singularity Definition file is divided into two parts: Header & Section

BootStrap: docker
From: ubuntu:16.04

%post
    apt-get -y update
    apt-get install sudo
    apt-get install python-minimal python-dev
    
	apt-get install software-properties-common
	add-apt-repository universe
   	add-apt-repository multiverse
   	add-apt-repository restricted
   	apt-get update
   	sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
	apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
	
	apt-get update
	apt-get install ros-kinetic-desktop-full
	
	apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
	
%environment
	echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
	source ~/.bashrc

%runscript
	rosdep init
	rosdep update

%labels

测试ROS是否可以正常运行

source  ~/.bashrc
# 在三个terminal分别运行如下三条命令
roscore  # terminal 1 启动环境
rosrun turtlesim turtlesim_node  # terminal 2 出现小乌龟
rosrun turtlesim turtle_teleop_key  # terminal 3 方向键可控制小乌龟移动
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 12:08:59  更:2021-10-08 12:10:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:34:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码