美文网首页生信软件札记
Singularity入门之乱七八糟

Singularity入门之乱七八糟

作者: kongxx | 来源:发表于2019-09-23 13:10 被阅读0次

    配置文件路径

    • singularity.conf: /etc/singularity/singularity.conf (CentOS7)
    • cgroups.toml: /etc/singularity/cgroups/cgroups.toml

    指定用户运行

    Singularity 运行容器的时候默认会使用当前用户来运行容器,但是对于有些由于安全问题必须使用root来运行的容器,默认就是root了,对于这种情况,可以通过 --security 来指定用户来运行容器。

    $ sudo singularity exec --security uid:1000 centos.simg id
    uid=1000(admin) gid=0(root) groups=0(root)
    

    Singularity 的 instance 是按用户分开的

    首先使用普通用户和root用户分别创建一个instance,比如:

    # 普通用户启动
    $ singularity instance start centos.simg normal_user_instance
    INFO:    instance started successfully
    
    # root用户启动
    $ sudo singularity instance start centos.simg root_user_instance
    INFO:    instance started successfully
    

    下面用普通用户和root用户分别查询instance,比如:

    # 普通用户查询
    $ singularity instance list
    INSTANCE NAME    PID      IMAGE
    normal_user_instance 22911    /home/data/singularity-study/centos.simg
    
    # root用户查询
    $ sudo singularity instance list
    INSTANCE NAME    PID      IMAGE
    root_user_instance 22997    /home/data/singularity-study/centos.simg
    

    网络端口映射

    Singularity 可以通过使用 --network-args 选项来指定容器到宿主节的端口映射,但是 --network-args 选项必须和 --net 一起使用。

    这里我们启动一个容器来运行 nginx 服务,如下:

    $ singularity pull docker://nginx
    
    $ sudo singularity run --writable-tmpfs --net --network-args "portmap=8080:80/tcp" nginx_latest.sif
    

    然后另开一个终端来通过访问宿主机的 8080 端口来测试

    $ curl http://localhost:8080
    ...
    

    路径绑定

    在 Singularity 中,默认在启动容器的时候会绑定下面这些路径

    • $HOME
    • /sys:/sys
    • /proc:/proc
    • /tmp:/tmp
    • /var/tmp:/var/tmp
    • /etc/resolv.conf:/etc/resolv.conf
    • /etc/passwd:/etc/passwd
    • $PWD

    我们可以在启动容器的时候通过 --bind 选项来绑定自己的路径,比如:

    绑定一个目录

    $ singularity shell --bind /opt ubuntu.sif
    $ singularity shell --bind /opt:/opt ubuntu.sif
    

    绑定多个目录

    $ singularity shell --bind /opt,/data:/mydata,/mnt:/mymnt ubuntu.sif
    

    也可以通过设置环境变量 SINGULARITY_BIND 来绑定

    $ export SINGULARITY_BIND="/opt,/data:/mydata,/mnt:/mymnt"
    $ singularity shell ubuntu.sif
    

    相关文章

      网友评论

        本文标题:Singularity入门之乱七八糟

        本文链接:https://www.haomeiwen.com/subject/namzyctx.html