# create the top most bundle directorymkdir /mycontainercd /mycontainer# create the rootfs directorymkdir rootfs# export busybox via Docker into the rootfs directorydocker export $(docker create busybox) | tar -C rootfs -xvf -
[root@node02 mycontainer]# lltotal 0drwxr-xr-x. 12 root root 137 May 28 09:05 rootfs[root@node02 mycontainer]# runc spec[root@node02 mycontainer]# lltotal 4-rw-r--r--. 1 root root 2652 May 28 09:05 config.jsondrwxr-xr-x. 12 root root 137 May 28 09:05 rootfs[root@node02 mycontainer]# runc run mycontainerid/ # ps -efPID USER TIME COMMAND1 root 0:00 sh7 root 0:00 ps -ef/ # exit[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNER
如果你使用未修改的runc规范模板,这应该会在容器内给你一个sh会话。
启动容器的第二种方法是使用spec生命周期操作。这为您提供了在容器运行时如何创建和管理容器的更多权力。这也将在后台启动容器,因此您必须编辑配置。Json来删除下面简单示例的终端设置(参见runc终端处理的更多细节)。配置中的流程字段。Json应该如下所示,带有”terminal”: false和”args”: [“sleep”, “5”]。
[root@node02 mycontainer]# vim config.json[root@node02 mycontainer]# runc create mycontainerid[root@node02 mycontainer]#[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNERmycontainerid 595088 created /root/liang/runc/test/mycontainer 2021-05-28T01:07:45.725027405Z root
[root@node02 mycontainer]# runc start mycontainerid[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNERmycontainerid 595088 running /root/liang/runc/test/mycontainer 2021-05-28T01:07:45.725027405Z root[root@node02 mycontainer]# runc exec mycontainerid lsbindevetchomeprocrootsystmpusrvar[root@node02 mycontainer]# runc exec mycontainerid ps -efPID USER TIME COMMAND1 root 0:00 sleep 5000013 root 0:00 ps -ef
[root@node02 mycontainer]# runc pause mycontainerid[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNERmycontainerid 595088 paused /root/liang/runc/test/mycontainer 2021-05-28T01:07:45.725027405Z root[root@node02 mycontainer]# runc resume mycontainerid[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNERmycontainerid 595088 running /root/liang/runc/test/mycontainer 2021-05-28T01:07:45.725027405Z root[root@node02 mycontainer]#
[root@node02 mycontainer]# runc state mycontainerid{"ociVersion": "1.0.1-dev","id": "mycontainerid","pid": 595088,"status": "running","bundle": "/root/liang/runc/test/mycontainer","rootfs": "/root/liang/runc/test/mycontainer/rootfs","created": "2021-05-28T01:07:45.725027405Z","owner": ""}
[root@node02 mycontainer]# runc kill mycontainerid 9[root@node02 mycontainer]# runc listID PID STATUS BUNDLE CREATED OWNERmycontainerid 0 stopped /root/liang/runc/test/mycontainer 2021-05-28T01:07:45.725027405Z root[root@node02 mycontainer]# runc delete mycontainerid
[root@node02 mycontainer]# /usr/bin/runc spec[root@node02 mycontainer]# runc run mycontainerid/ # ps -efPID USER TIME COMMAND1 root 0:00 sh8 root 0:00 ps -ef
