前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Singularity入门之持久化Overlay

Singularity入门之持久化Overlay

作者头像
kongxx
发布2019-09-25 10:24:08
1.1K0
发布2019-09-25 10:24:08
举报

介绍

在 Singularity 中运行容器,当容器退出时,对容器做的修改均会丢失,那怎么保存对容器的修改呢?此时我们可以通过 Singularity 的 Overlay 实现。

Singularity 的 Overlay 其实就是一个目录或文件系统镜像,其中保存着对基于基础镜像的修改,可以使用 --overlay 选项来使用,且应用在下面几个容器命令上:

  • run
  • exec
  • shell
  • instance.start

使用

首先,先获取一个基础镜像,比如:centos,获取后会下载一个 centos.sif 文件。

代码语言:javascript
复制
$ singularity pull centos

创建一个目录作为 Overlay 目录。

代码语言:javascript
复制
$ mkdir my_overlay

然后使用 --overlay 选项运行容器,由于安全原因,使用 --overlay 必须要具有 root 权限,所以可以使用 sudo 来运行。

代码语言:javascript
复制
$ sudo singularity shell --overlay my_overlay centos.sif

# 先在容器里检查是否有zip工具,默认容器会找不到命令。
Singularity centos.sif:/home/data/singularity-study> zip
bash: zip: command not found

# 安装一下zip包
Singularity centos.sif:/home/data/singularity-study> yum install -y zip
...

# 安装完检查一下zip工具安装路径
Singularity centos.sif:/home/data/singularity-study> whereis zip
zip: /usr/bin/zip

然后退出容器,并使用下面命令再次运行容器,就会发现刚才安装的工具已经在容器中了。

代码语言:javascript
复制
$ sudo singularity shell --overlay my_overlay centos.sif

# 然后直接检查zip工具安装路径
Singularity centos.sif:/home/data/singularity-study> whereis zip
zip: /usr/bin/zip

如果我们使用下面的命令运行容器,就不会使用我们上面创建的 Overlay。

代码语言:javascript
复制
$ sudo singularity shell centos.sif

# 容器会找不到zip命令
Singularity centos.sif:/home/data/singularity-study> zip
bash: zip: command not found

最后说一下,对于使用 Overlay 的持久化的容器,我们无法根据 Overlay 目录来创建镜像。比如:如果我使用下面的命令来创建镜像

代码语言:javascript
复制
$ sudo singularity build my_overlay.sif my_overlay
INFO:    Starting build...
INFO:    Creating SIF file...
INFO:    Build complete: my_overlay.sif

创建镜像后,我们使用此镜像来创建容器,此时会提示运行报错。

代码语言:javascript
复制
$ singularity shell my_overlay.sif
WARNING: passwd file doesn't exist in container, not updating
WARNING: group file doesn't exist in container, not updating
FATAL:   exec /.singularity.d/actions/shell failed: no such file or directory
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.09.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 使用
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档