unshare实现类似docker、podman容器共享主机网络的隔离沙箱运行代码

代码语言:bash

所属分类:其他

代码描述:unshare实现类似docker、podman容器共享主机网络的隔离沙箱运行代码,在centos stream9上实操可用。可以挂载主机的空间。

代码标签: unshare 实现 类似 docker podman 容器 共享 网络 技术 隔离 沙箱 运行

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/bin/bash
# p-run-hostnet.sh - 一个共享主机网络、可交互的 rootless 容器启动器 

# --- 配置 ---
P_RUN_BASE_DIR="$HOME/.local/share/p-run-hostnet"
IMAGES_DIR="$P_RUN_BASE_DIR/images"
CONTAINERS_DIR="$P_RUN_BASE_DIR/containers"
ALPINE_URL="https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/x86_64/alpine-minirootfs-3.18.3-x86_64.tar.gz"
ALPINE_TAR_NAME=$(basename "$ALPINE_URL")

# --- 辅助函数 ---
RED='\033[0;31m'; GREEN='\033[0;32m'; BLUE='\033[0;34m'; NC='\033[0m'
info() { echo -e "${BLUE}INFO:${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_NAM.........完整代码请登录后点击上方下载按钮下载查看

网友评论0