创建容器

描述

isula create 命令用于创建一个新的容器。容器引擎会使用指定的容器镜像创建容器读写层,或者使用指定的本地rootfs作为容器的运行环境。创建完成后,会将容器的ID输出到标准输出,后续可以使用isula start 命令启动该容器。新创建的容器状态为inited状态

用法

  1. isula create [OPTIONS] IMAGE [COMMAND] [ARG...]

参数

create命令支持参数参考下表。

表 1 create命令参数列表

命令

参数

说明

create

—cap-drop

删除Linux 权限功能

—cgroup-parent

指定容器cgroup父路径

—cpuset-cpus

允许执行的CPU(e.g. 0-3,0,1)

—cpu-shares

CPU份额(相对权重)

—cpu-quota

限制CPU CFS(完全公平调度器)的配额

—device=[]

为容器添加一个主机设备

-e, —env

设置环境变量

—entrypoint

启动容器时要运行的入口点

—external-rootfs=PATH

指定一个不由iSulad管理的rootfs(可以为文件夹或块设备)给容器

—files-limit

调整容器内能够打开的文件句柄数(-1表示不限制)

—group-add=[]

指定额外的用户组添加到容器

—help

打印帮助信息

—hook-spec

钩子配置文件

-H, —host

指定要连接的iSulad socket文件路径

-h, —hostname

容器主机名称

-i, —interactive

即使没有连接到容器的标准输入,也要保持容器的标准输入打开

—hugetlb-limit=[]

大页文件限制,例如:—hugetlb-limit 2MB:32MB

—log-opt=[]

日志驱动程序选项,默认禁用记录容器串口日志功能,可以通过”—log-opt disable-log=false”来开启。

-m, —memory

内存限制

—memory-reservation

设置容器内存限制,默认与—memory一致。可认为—memory是硬限制,—memory-reservation是软限制;当使用内存超过预设值时,会动态调整(系统回收内存时尝试将使用内存降低到预设值以下),但不确保一定不超过预设值。一般可以和—memory一起使用,数值小于—memory的预设值,最小设置为4MB。

—memory-swap

正整数,内存 + 交换空间,-1 表示不限制

—mount

挂载主机目录到容器中

—name=NAME

容器名

—net=none

容器连接到网络

—pids-limit

调整容器内能够执行的进程数(-1表示不限制)

—privileged

给予容器扩展的特权

-R, —runtime

容器运行时,参数支持”lcr”,忽略大小写,因此”LCR”和”lcr”是等价的

—read-only

设置容器的根文件系统为只读

—restart

当容器退出时重启策略

系统容器支持—restart on-reboot

—storage-opt

配置容器的存储驱动选项

-t, —tty

分配伪终端

—ulimit

为容器设置ulimit限制

-u, —user

用户名或UID,格式[<name|uid>][:<group|gid>]

-v, —volume=[]

挂载一个卷

约束限制

  • 使用—user或—group-add参数,在容器启动阶段校验user或group时,容器如果使用的是OCI镜像,是从镜像的真实rootfs的etc/passwd和etc/group文件中校验,如果使用的是rootfs文件夹或块设备作为容器的rootfs,则校验的是host中的etc/passwd和etc/group文件;查找时使用的rootfs会忽略-v 和—mount等挂载参数,意味着使用这些参数尝试覆盖etc/passwd和etc/group两个文件时,在查找阶段不生效,只在容器真正启动时生效。生成的配置保存在”iSulad根目录/engine/容器ID/start_generate_config.json”,文件格式如下:

    1. {
    2. "uid": 0,
    3. "gid": 8,
    4. "additionalGids": [
    5. 1234,
    6. 8
    7. ]
    8. }

示例

创建一个新容器

  1. $ isula create busybox
  2. fd7376591a9c3d8ee9a14f5d2c2e5255b02cc44cddaabca82170efd4497510e1
  3. $ isula ps -a
  4. STATUS PID IMAGE COMMAND EXIT_CODE RESTART_COUNT STARTAT FINISHAT RUNTIME ID NAMES inited - busybox "sh" 0 0 - - lcr fd7376591a9c fd7376591a9c4521...