Startseite

R-Programmierung in VS Code über Docker-Container

Haben Sie schon einmal versucht, Ihren R-Code mit einem Kollegen zu teilen, nur um dann Stunden mit dem Debuggen von „aber es funktioniert auf meinem Rechner“-Problemen zu verbringen? Docker-Container sind wie Frachtcontainer für Code – sie verpacken Ihre R-Umgebung, Bibliotheken und Abhängigkeiten in eine versiegelte Box, die überall gleich funktioniert. Außerdem erhalten Sie Zugang zu Zehntausenden von vorgefertigten Images auf Docker Hub, wo Softwareentwickler fertige Umgebungen veröffentlichen und Ihnen den Schmerz manueller Softwareinstallation ersparen. Dieses Tutorial zeigt Ihnen, wie Sie R in einer isolierten, reproduzierbaren Umgebung mit VS Code und Docker Desktop ausführen.

Wichtige Konzepte

Was Sie benötigen

Schritt 1: Docker Desktop installieren

Schritt 2: Dev Containers-Erweiterung installieren

Schritt 3: Das Vibe-Projekt mit GitHub Desktop klonen

Schritt 4: Projekt in VS Code öffnen

Schritt 5: Im Container erneut öffnen

Apple-Silicon-Macs: Dieses Image ist für Intel/AMD-Prozessoren gebaut. Docker Desktop führt es per Emulation aus. Daher sind der erste Build und R selbst langsamer, aber alles funktioniert.

Hinweis: Der Container enthält automatisch die R-Erweiterung und das languageserver-Paket. Das Dockerfile und die devcontainer.json erledigen das für Sie.

Schritt 6: Die Container-Umgebung verstehen

Jetzt programmieren Sie innerhalb eines Linux-Containers. Lassen Sie uns erkunden, was das bedeutet.

pwd

Sie sehen /workspaces/vibe – das ist Ihr Projektordner innerhalb des Containers.

ls

Sie sehen dieselben Dateien aus dem Projekt: R/, docs/, README.md usw. (Ordner, deren Name mit einem Punkt beginnt, wie .devcontainer/, sind ausgeblendet; ls -a zeigt sie an)

cd ..
ls

Sie sehen nur vibe/ – der Container ist isoliert. Sie können nicht auf die anderen Ordner, den Desktop oder die Dokumente Ihres Computers zugreifen. Diese Isolation stellt sicher, dass Ihre R-Umgebung sauber und reproduzierbar ist.

cd vibe

Schritt 7: R-Code Zeile für Zeile ausführen

Der Container hat R mit gängigen Paketen vorinstalliert. Führen wir ein einfaches Datenanalyse-Skript aus.

Schritt 8: Die App ausführen

Das Projekt enthält eine Demo-Shiny-App, die ein interaktives Histogramm erstellt.

Schritt 9: Eine einfache Änderung vornehmen

Lassen Sie uns die App modifizieren, um zu sehen, wie Entwicklung funktioniert.

titlePanel("My First R Docker App"),

Schritt 10: Das Dockerfile verstehen (Optional)

# choose a Dockerhub base image with R, Shiny Server, and tidyverse packages
FROM rocker/shiny-verse:latest

# 1. System deps commonly needed by R packages
RUN apt-get update && apt-get install -y \
    libcurl4-openssl-dev libssl-dev libxml2-dev git curl && \
    rm -rf /var/lib/apt/lists/*

# 2. R packages for VS Code integration: language server + debugger
RUN R -q -e 'install.packages(c("rstudioapi", "languageserver"), repos="https://cloud.r-project.org")'

# 3. Install Node.js LTS from NodeSource
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
    && apt-get install -y nodejs \
    && npm install -g npm@latest

# 4. Install Claude Code globally (newer npm blocks its setup script unless allowed)
RUN npm config set allow-scripts=@anthropic-ai/claude-code --location=global \
    && npm install -g @anthropic-ai/claude-code

# 5. Give shiny passwordless sudo for updating Claude Code from VS Code
RUN echo 'shiny ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
    rm -rf /var/lib/apt/lists/*

# Expose Shiny server port
EXPOSE 3838

Wichtige Teile:

Andere Rocker-Images, die Sie verwenden können:

Nach Änderung des Basis-Images müssen Sie den Container neu erstellen, um die Änderungen anzuwenden.

Schritt 11: R-Pakete im Docker-Image installieren (Optional)

Über die R-Konsole installierte Pakete (install.packages()) sind temporär und verschwinden, wenn Sie den Container neu erstellen. Um Pakete permanent zu machen, fügen Sie sie dem Dockerfile hinzu.

library(data.table)

Wenn es ohne Fehler geladen wird, ist das Paket permanent installiert.

Nächste Schritte

Fehlerbehebung

Workflow-Überblick

Diese Einrichtung gibt Ihnen eine professionelle R-Entwicklungsumgebung:

Täglicher Workflow

Sobald alles eingerichtet ist, hier Ihre tägliche Routine:

  1. Docker Desktop starten - Öffnen Sie die App und warten Sie auf den grünen Statusanzeiger (Docker muss laufen)
  2. VS Code öffnen - Starten Sie VS Code und öffnen Sie Ihren Projektordner
  3. Im Container erneut öffnen - Falls nicht bereits im Container, klicken Sie auf das ><-Symbol (unten links) und wählen Sie Reopen in Container
  4. Code schreiben und ausführen - Bearbeiten Sie .R-Dateien, führen Sie sie Zeile für Zeile mit Strg+Enter/Cmd+Enter aus, oder führen Sie Shiny-Apps mit der Schaltfläche ▶ Run Shiny App aus
  5. Ihre Arbeit speichern - Ihre Code-Dateien (.R, .Rmd) werden auf Ihrem Computer gespeichert und bleiben über Sitzungen hinweg erhalten
  6. Committen und pushen - Verwenden Sie GitHub Desktop, um Ihre Änderungen zu committen und in das Repository zu pushen

Was ist Docker Desktop?

Docker Desktop ist eine Anwendung, die die Nutzung von Docker auf Ihrem Computer erleichtert. Sie stellt die Hintergrunddienste bereit, die Docker benötigt, und bietet ein Fenster, in dem Sie Ihre Container, Images, Speicher und andere Docker-Ressourcen sehen und verwalten können.

Sie können sich Docker Desktop als Steuerzentrale für Ihre Container vorstellen. Wenn Sie Docker Desktop öffnen, startet es die Docker-Engine. Die Docker-Engine ist der Teil von Docker, der Container tatsächlich erstellt und ausführt. Normalerweise müssen Sie nicht direkt mit der Engine arbeiten, da Docker Desktop sie für Sie verwaltet.

Was macht Docker Desktop?

Docker Desktop übernimmt mehrere wichtige Aufgaben:

Wie Docker Desktop in dieses Tutorial passt

Drei Teile arbeiten zusammen:

  1. Docker Desktop führt die Docker-Engine auf Ihrem Computer aus.
  2. VS Code ist der Editor, in dem Sie R-Code schreiben und ausführen.
  3. Der Dev Container stellt eine vorbereitete Linux-Umgebung bereit, die R, R-Pakete und die in diesem Projekt verwendeten Werkzeuge enthält.

Wenn Sie Reopen in Container wählen, bittet VS Code Docker Desktop, den Container des Projekts zu erstellen oder zu starten. Die Anwendung läuft weiterhin auf Ihrem Computer, aber die R-Umgebung befindet sich im Container. So bleiben R-Version, Pakete und Systemwerkzeuge vom Rest Ihres Computers getrennt.

Docker Desktop ersetzt weder VS Code noch R noch Ihren Webbrowser. Es stellt die Umgebung bereit, in der der Container läuft. In VS Code arbeiten Sie, R ist die Sprache, die Sie verwenden, und im Browser sehen Sie sich die Shiny-App an.

Warum Docker Desktop verwenden?

Wenn Sie R und alle benötigten Pakete direkt auf Ihrem Computer installieren, kann es manchmal zu Versionskonflikten kommen. Ein Projekt braucht vielleicht eine andere Paketversion als ein anderes Projekt. Docker Desktop hilft, solche Konflikte zu vermeiden, indem es jedem Projekt eine eigene, kontrollierte Umgebung gibt.

Wenn zum Beispiel eine Kommilitonin oder ein Kommilitone dieselben Projektdateien und Docker-Einstellungen verwendet, kann Docker eine Umgebung erstellen, die Ihrer sehr ähnlich ist. Dadurch ist es weniger wahrscheinlich, dass Sie einen Fehler sehen, der nur durch unterschiedliche Softwareversionen entsteht. Ihr R-Code und Ihre Projektdateien bleiben auf Ihrem Computer, während die Werkzeuge, die zum Ausführen benötigt werden, im Container organisiert sind.

Docker Desktop muss geöffnet sein und laufen, bevor Sie dieses Projekt in einem Container erstellen oder erneut öffnen. Wenn Docker Desktop geschlossen ist, kann VS Code den Container nicht starten, und Sie sehen möglicherweise eine Fehlermeldung, dass Docker nicht läuft.


Erstellt von Steven Ge am 7. Dezember 2025.