The .NET SDK can publish applications directly as container images using `dotnet publish /t:PublishContainer` — no Dockerfile required. This feature, built into the SDK since .NET 8.0.200, handles base image selection, layer creation, tagging, and pushing. The guide covers MSBuild property configuration in .csproj files, benchmarks of 6 base image variants (Alpine cuts size 47%, Chiseled up to 53%, Native AOT + Chiseled achieves ~15 MB), a decision matrix comparing SDK publish vs Dockerfile, multi-architecture image support via ContainerRuntimeIdentifiers, publishing to registries like GHCR/ECR/Docker Hub, tarball export for air-gapped environments, GitHub Actions CI/CD integration, Directory.Build.props for multi-project solutions, and a production hardening checklist covering non-root users, minimal base images, tag pinning, and image scanning.