kitlau
kitlau

kitlau's blog

Docker


Linux Docker 的 root 和 rootless 模式

Rootless Docker与Root Docker在配置文件和存储路径上存在显著差异,Rootless模式以普通用户权限运行,数据存储在用户目录(如~/.local/share/docker),配置文件位于~/.config/docker/daemon.json,而Root模式需sudo权限,配置文件为/etc/docker/daemon.json,存储路径为/var/lib/docker,运行时套接字分别为$XDG_RUNTIME_DIR/docker.sock与/var/run/docker.sock。Rootless Docker通过用户命名空间技术实现容器隔离,将容器内root用户映射到主机普通用户,提升安全性并避免系统级权限共享,但存在性能较低(依赖用户态网络模拟如slirp4netns)、功能受限(如不支持Cgroups资源限制)及兼容性问题(需Linux Kernel 5.11以上)。其适用于开发环境、共享服务器、安全敏感场景及教育实验,通过dockerd-rootless-setuptool.sh安装后配置环境变量(如DOCKER_HOST)并启动systemctl --user服务,需单独配置~/.config/docker/daemon.json以设置镜像加速、日志驱动等参数,与Root模式共存时通过环境变量区分实例,确保两者网络、存储及配置完全隔离。--Qwen3

AnduinOS Docker rootless-docker docker-containerization linux-containers security-best-practices configuration-management comparison-analysis

【译】.NET SDK 将会内置容器支持,不再需要 Dockerfile

.NET 7 SDK引入了容器镜像构建功能,开发者可通过`dotnet publish`命令直接生成容器镜像,无需编写Dockerfile。该功能基于MSBuild属性实现自定义配置,支持镜像名称、版本、基础镜像等参数设置,适用于本地开发和CI管道场景。当前版本专注于Linux-x64架构,暂不支持Windows镜像和非x64架构,推送远程仓库需依赖Docker命令。核心局限包括不支持RUN命令执行系统操作、部分元数据自定义功能未实现,但计划在后续版本中完善。该功能通过简化容器构建流程(如GitHub Actions示例仅需30行配置),与传统Dockerfile相比减少了文件维护成本,未来将集成至SDK并逐步替代现有NuGet包。开发者可通过自定义基础镜像扩展功能,例如预装系统依赖,同时需关注预览阶段的已知限制,如身份验证支持待完善等问题。--Qwen3

.NET Docker .NET SDK Container Builds Linux x64 GitHub Actions

  • 1