Singularity入門之通過鏡像定義文件創建鏡像

鏡像配置文件

下面以 Redis 數據庫爲例,主要說說 %startscript 和 %runscript 的區別。

看下面 redis.def 配置文件

Bootstrap:library
From: ubuntu:18.04

%help
	Redis 5.0.0 for Ubuntu

%post
	apt-get update
	apt-get install -y wget build-essential
	wget http://download.redis.io/releases/redis-5.0.0.tar.gz
	tar xzf redis-5.0.0.tar.gz
	cd redis-5.0.0
	make

%startscript
	/redis-5.0.0/src/redis-server

%runscript
	/redis-5.0.0/src/redis-cli

其中:

  • %startscript 是指容器啓動時運行的命令,見下面:啓動 Redis Server
  • %runscript 是指容器執行時運行的命令,通過 run 子命令或者直接運行容器鏡像來執行,見下面:運行 Redis Client
  • 具體配置文件說明,可以參考: https://sylabs.io/guides/3.2/user-guide/definition_files.html

製作鏡像

製作鏡像需要 root 權限,所以下面命令用 sudo 來執行。

$ sudo singularity build redis.sif redis.def

使用鏡像

啓動 Redis Server

啓動 Redis Server 會調用 %startscript 來啓動 Redis Server。

$ singularity instance start redis.sif redis
INFO:    instance started successfully

運行 Redis Client

運行 Redis Client 會調用 %runscript 來運行 Redis Client。

# 通過 run 子命令運行 Redis Client
$ singularity run redis.sif
127.0.0.1:6379> ?

# 通過直接執行鏡像來運行 Redis Client
$ ./redis.sif
127.0.0.1:6379> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章