创建容器
描述
isula create 命令用于创建一个新的容器。容器引擎会使用指定的容器镜像创建容器读写层,或者使用指定的本地rootfs作为容器的运行环境。创建完成后,会将容器的ID输出到标准输出,后续可以使用isula start 命令启动该容器。新创建的容器状态为inited状态
用法
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”,文件格式如下:
{
"uid": 0,
"gid": 8,
"additionalGids": [
1234,
8
]
}
示例
创建一个新容器
$ isula create busybox
fd7376591a9c3d8ee9a14f5d2c2e5255b02cc44cddaabca82170efd4497510e1
$ isula ps -a
STATUS PID IMAGE COMMAND EXIT_CODE RESTART_COUNT STARTAT FINISHAT RUNTIME ID NAMES inited - busybox "sh" 0 0 - - lcr fd7376591a9c fd7376591a9c4521...