GVisor
什么是 gVisor?
它是一个用 Go 语言编写的内核系统调用实现。它有助于将内核与容器隔离。
如何实现 gVisor
在此处运行说明: https://gvisor.dev/docs/user_guide/install/
( set -e ARCH=$(uname -m) URL=https://storage.googleapis.com/gvisor/releases/release/latest/${ARCH} wget ${URL}/runsc ${URL}/runsc.sha512 \ ${URL}/containerd-shim-runsc-v1 ${URL}/containerd-shim-runsc-v1.sha512 sha512sum -c runsc.sha512 \ -c containerd-shim-runsc-v1.sha512 rm -f *.sha512 chmod a+rx runsc containerd-shim-runsc-v1 doas mv runsc containerd-shim-runsc-v1 /usr/local/bin )
/usr/local/bin/runsc install
设置 sysctl 以禁用 Yama ptrace 作用域并增加最大命名空间数量(可能会增加攻击面)
/etc/sysctl.conf 的内容
user.max_user_namespaces=7182 # 根据需要设置数量... kernel.yama.ptrace_scope=0
现在,对于 docker run
,追加 --runtime=runsc
或者对于 compose.yml
,执行 runtime: runsc