add nerdctl config

This commit is contained in:
Your Name
2024-11-12 20:57:09 +08:00
parent 1b2945a001
commit 3cd77a4ae9

49
nerdctl/setup_nerdctl_config.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
# setup_nerdctl_config.sh
# 说明:此脚本用于配置 nerdctl 的 rootless 模式配置文件 ~/.config/nerdctl/nerdctl.toml。
# 该配置文件包含 nerdctl 的基础配置如调试模式、socket 地址、命名空间等。
# 获取当前用户
CURRENT_USER=$(whoami)
echo "当前用户:$CURRENT_USER"
# 配置文件路径
CONFIG_DIR="$HOME/.config/nerdctl"
CONFIG_FILE="$CONFIG_DIR/nerdctl.toml"
# 创建配置目录
mkdir -p "$CONFIG_DIR"
# 生成 nerdctl 配置文件
echo "生成 nerdctl 配置文件..."
cat > "$CONFIG_FILE" <<EOF
debug = false
address = "unix:///run/containerd/containerd.sock"
namespace = "buildkit"
snapshotter = "overlayfs"
cgroup_manager = "cgroupfs"
hosts_dir = ["$HOME/.config/containerd/certs.d"]
experimental = true
EOF
# 确保 /run/containerd/containerd.sock 权限正确
echo "配置 containerd.sock 的权限..."
sudo groupadd -f containerd # 创建 containerd 组(如果不存在)
sudo usermod -aG containerd "$CURRENT_USER" # 将当前用户添加到 containerd 组
sudo chgrp containerd /run/containerd/containerd.sock
sudo chmod 660 /run/containerd/containerd.sock
# 重启相关服务
echo "重启相关服务以应用新配置..."
systemctl --user daemon-reload
systemctl --user restart nerdctl
sudo systemctl daemon-reload
sudo systemctl restart containerd
# 提示用户重新登录以应用对组的更改
echo "完成。请重新登录会话以应用对 containerd 组的更改,使 $CURRENT_USER 可以使用 /run/containerd/containerd.sock。"
# 输出完成信息
echo "nerdctl 配置文件已生成: $CONFIG_FILE"
echo "相关服务已重启详细配置选项请参考官方文档https://github.com/containerd/nerdctl/blob/main/docs/config.md"