# Docker & Containerization (Go) > Dockerfile, Multi-Stage-Builds, Image-Optimierung, docker-compose, Container-Orchestrierung - 20 Interview-Fragen - Senior - [Interview-Fragen: Go](https://sharpskill.dev/de/technologies/go/interviewfragen.md) ## 1. Was ist der Hauptgrund für die Verwendung eines Multi-Stage-Builds für eine Go-Anwendung? **Antwort** Der Multi-Stage-Build trennt die Kompilierungsumgebung vom finalen Image. Die Build-Stage enthält das vollständige Go-SDK (mehrere hundert MB), während das finale Image nur die kompilierte Binärdatei enthält. Dies reduziert die Image-Größe drastisch (von ~800MB auf wenige MB) und minimiert die Angriffsfläche, indem unnötige Build-Tools in der Produktion entfernt werden. ## 2. Welches Basis-Image wird für eine Go-Anwendung in der Produktion empfohlen, um Größe und Angriffsfläche zu minimieren? **Antwort** Das scratch-Image ist ein leeres Image ohne Betriebssystem. Go kompiliert zu statischen Binärdateien, die kein libc oder andere Systemabhängigkeiten benötigen, wodurch scratch nutzbar wird. Dies erzeugt die kleinstmöglichen Images (wenige MB) und bietet die beste Sicherheit, da es keine ausnutzbaren Tools oder Shells gibt. Distroless und alpine sind gültige, aber weniger optimale Alternativen. ## 3. Welche Go-Kompilierungsflags sind erforderlich, um eine mit einem scratch-Image kompatible Binärdatei zu erstellen? **Antwort** CGO_ENABLED=0 deaktiviert cgo und zwingt Go, reine Go-Implementierungen für Pakete wie net und os/user zu verwenden. Ohne dies hätte die Binärdatei dynamische Abhängigkeiten zu libc. GOOS und GOARCH geben die Zielplattform an. Diese kombinierten Flags erzeugen eine vollständig statische Binärdatei ohne externe Abhängigkeiten, ideal für scratch. ## 17 weitere Fragen verfügbar - Wie optimiert man das Docker-Layer-Caching beim Build einer Go-Anwendung? - Was ist der Vorteil der Verwendung von Google-Distroless-Images für Go im Vergleich zu scratch? Kostenlos registrieren: https://sharpskill.dev/de/login ## Weitere Go-Interviewthemen - [Go-Grundlagen](https://sharpskill.dev/de/technologies/go/interviewfragen/go-basics.md): 25 Fragen, Junior - [Go-Datenstrukturen](https://sharpskill.dev/de/technologies/go/interviewfragen/go-data-structures.md): 20 Fragen, Junior - [Go-Interfaces](https://sharpskill.dev/de/technologies/go/interviewfragen/go-interfaces.md): 18 Fragen, Junior - [Fehlerbehandlung](https://sharpskill.dev/de/technologies/go/interviewfragen/error-handling.md): 20 Fragen, Junior - [Goroutines-Grundlagen](https://sharpskill.dev/de/technologies/go/interviewfragen/goroutines-basics.md): 20 Fragen, Junior - [Channels](https://sharpskill.dev/de/technologies/go/interviewfragen/channels.md): 22 Fragen, Junior - [Go Modules](https://sharpskill.dev/de/technologies/go/interviewfragen/go-modules.md): 18 Fragen, Mid-Level - [HTTP-Server](https://sharpskill.dev/de/technologies/go/interviewfragen/http-server.md): 24 Fragen, Mid-Level - [HTTP-Client](https://sharpskill.dev/de/technologies/go/interviewfragen/http-client.md): 18 Fragen, Mid-Level - [JSON-Kodierung](https://sharpskill.dev/de/technologies/go/interviewfragen/json-encoding.md): 20 Fragen, Mid-Level - [Database/SQL](https://sharpskill.dev/de/technologies/go/interviewfragen/database-sql.md): 22 Fragen, Mid-Level - [context-Paket](https://sharpskill.dev/de/technologies/go/interviewfragen/context-package.md): 20 Fragen, Mid-Level - [Testing](https://sharpskill.dev/de/technologies/go/interviewfragen/testing.md): 22 Fragen, Mid-Level - [Concurrency-Patterns](https://sharpskill.dev/de/technologies/go/interviewfragen/concurrency-patterns.md): 24 Fragen, Mid-Level - [Synchronisationsprimitive](https://sharpskill.dev/de/technologies/go/interviewfragen/sync-primitives.md): 22 Fragen, Mid-Level - [Go-Web-Frameworks](https://sharpskill.dev/de/technologies/go/interviewfragen/go-web-frameworks.md): 20 Fragen, Mid-Level - [REST-API-Design](https://sharpskill.dev/de/technologies/go/interviewfragen/rest-api-design.md): 20 Fragen, Mid-Level - [gRPC](https://sharpskill.dev/de/technologies/go/interviewfragen/grpc.md): 22 Fragen, Mid-Level - [Reflection](https://sharpskill.dev/de/technologies/go/interviewfragen/reflection.md): 20 Fragen, Senior - [Speicherverwaltung](https://sharpskill.dev/de/technologies/go/interviewfragen/memory-management.md): 24 Fragen, Senior - [Performance-Optimierung](https://sharpskill.dev/de/technologies/go/interviewfragen/performance-optimization.md): 22 Fragen, Senior - [Generics](https://sharpskill.dev/de/technologies/go/interviewfragen/generics.md): 20 Fragen, Senior - [Go Design Patterns](https://sharpskill.dev/de/technologies/go/interviewfragen/design-patterns.md): 24 Fragen, Senior - [Microservices](https://sharpskill.dev/de/technologies/go/interviewfragen/microservices.md): 24 Fragen, Senior - [Sicherheit und Authentifizierung](https://sharpskill.dev/de/technologies/go/interviewfragen/security-authentication.md): 24 Fragen, Senior - [Kubernetes Basics](https://sharpskill.dev/de/technologies/go/interviewfragen/kubernetes-basics.md): 22 Fragen, Senior - [Fortgeschrittenes Go](https://sharpskill.dev/de/technologies/go/interviewfragen/advanced-go.md): 20 Fragen, Senior - [CLI-Entwicklung](https://sharpskill.dev/de/technologies/go/interviewfragen/cli-development.md): 20 Fragen, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/de/technologies/go/interviewfragen/docker-containerization