命名空间管理
containerd中namespace的作用为:隔离运行的容器,可以实现运行多个容器。
# 查看帮助
查看命令帮助
# ctr namespace --help
NAME:
ctr namespaces - manage namespaces
USAGE:
ctr namespaces command [command options] [arguments...]
COMMANDS:
create, c create a new namespace
list, ls list namespaces
remove, rm remove one or more namespaces
label set and clear labels for a namespace
OPTIONS:
--help, -h show help
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ns操作
# 查看
列出已有namespace
# ctr namespace ls
NAME LABELS
default
k8s.io
1
2
3
4
5
2
3
4
5
# 创建
创建namespace
# ctr namespace create kubemsb
[root@localhost ~]# ctr namespace ls
NAME LABELS
default
k8s.io
kubemsb 此命名空间为新添加的
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 删除
删除namespace
# ctr namespace rm kubemsb
kubemsb
再次查看是否删除
[root@localhost ~]# ctr namespace ls
NAME LABELS
default
k8s.io
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 查看用户进程
查看指定namespace中是否有用户进程在运行
# ctr -n kubemsb tasks ls
TASK PID STATUS
1
2
3
2
3
# 查看镜像
在指定namespace中下载容器镜像
# ctr -n kubemsb images pull docker.io/library/nginx:latest
1
2
2
# 创建静态容器
在指定namespace中创建静态容器
# ctr -n kubemsb container create docker.io/library/nginx:latest nginxapp
1
2
2
# 查看容器
查看在指定namespace中创建的容器
# ctr -n kubemsb container ls
CONTAINER IMAGE RUNTIME
nginxapp docker.io/library/nginx:latest io.containerd.runc.v2
1
2
3
4
2
3
4
# 与其它Containerd容器共享命名空间
当需要与其它Containerd管理的容器共享命名空间时,可使用如下方法。
# ctr tasks ls
TASK PID STATUS
busybox3 13778 RUNNING
busybox 8377 RUNNING
busybox1 12469 RUNNING
1
2
3
4
5
2
3
4
5
# ctr container create --with-ns "pid:/proc/13778/ns/pid" docker.io/library/busybox:latest busybox4
[root@localhost ~]# ctr tasks start -d busybox4 bash
[root@localhost ~]# ctr tasks exec --exec-id $RANDOM -t busybox3 sh
/ # ps aux
PID USER TIME COMMAND
1 root 0:00 sh
20 root 0:00 sh
26 root 0:00 sh
32 root 0:00 ps aux
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
编辑 (opens new window)