unshare实现类似docker、podman容器技术隔离沙箱运行代码
代码语言:bash
所属分类:其他
代码描述:unshare实现类似docker、podman容器技术隔离沙箱运行代码,在centos stream9上实操可用。
代码标签: unshare 实现 类似 docker podman 容器 技术 隔离 沙箱 运行 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
#!/bin/bash
# p-run.sh -一个模仿 podman run 的 rootless 容器启动器
# --- 配置 ---
P_RUN_BASE_DIR="$HOME/.local/share/p-run"
IMAGES_DIR="$P_RUN_BASE_DIR/images"
CONTAINERS_DIR="$P_RUN_BASE_DIR/containers"
ALPINE_URL="http://dl-cdn.alpinelinux.org/alpine/v3.22/releases/x86_64/alpine-minirootfs-3.22.2-x86_64.tar.gz"
ALPINE_TAR_NAME=$(basename "$ALPINE_URL")
BRIDGE_NAME="prun0"
BRIDGE_IP="10.88.0.1/16"
# --- 辅助函数 ---
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[0;33m'; BLUE='\033[0;34m'; NC='\033[0m'
info() { echo -e "${BLUE}INFO:${NC} $1"; }
warn() { echo -e "${YELLOW}WARN:${NC} $1"; }
error() { echo -e "${RED}ERROR:${NC} $1" >&2; exit 1; }
# --- 核心功能 ---
prepare_base_image() {
local image_name=$1; local image_path="$IMAGES_DIR/$image_name"
if [ -d "$image_path/bin" ]; then return 0; fi
info "未找到镜像 '$image_name',正在准备..."
mkdir -p "$image_path"
if [ ! -f "$P_RUN_BASE_DIR/$ALPINE_TAR_NAME" ]; then
info "正在下载 Alpine Mini RootFS..."
wget -q --show-progress -O "$P_RUN_BASE_DIR/$ALPINE_TAR_NAME" &quo.........完整代码请登录后点击上方下载按钮下载查看















网友评论0