Vermeiden Sie verstümmelte Zeichen und teilen Sie das Dateisystem in der Docker-Umgebung Rstudio (auch Docoker-Compose).

Probleme mit der Freigabe von Verstümmelungen und Dateisystemen

Docker Hub verfügt über "Rocker / Geospatial" als Rstudio Server-Umgebung, die auch GIS analysieren kann. Selbst wenn ich versuchte, es nachzuahmen und "Docker Pull" und "Docker Run Rocker / Geospatial" machte, gab es die folgenden zwei Probleme.

  1. Die mit ggplot2 usw. gezeichnete Figur unterstützt kein Japanisch (Zeichen sind verstümmelt)
  2. Wenn Sie das Dateisystem nicht für Host / Container freigeben, können Sie nicht auf die Dateien zugreifen, die Sie in der Desktop-Version immer verwendet haben. (Wenn Sie es zum Zeitpunkt des "Docker-Laufs" nicht einstellen, können Sie "setwd" nach dem Start nicht mehr ausprobieren.)

Ich werde ein Memorandum of Understanding hinterlassen, das diese beiden Punkte anspricht.

Erstellen einer Docker-Datei

Erstellen Sie zunächst eine Docker-Datei an einer beliebigen Stelle auf der Hostseite (Computer). Erstellen Sie dieses Mal ein Verzeichnis mit dem Namen Docker in Dropbox und erstellen Sie eine Docker-Datei. (Beispiel: (Mac) C: \ Benutzer \ Benutzer \ Dropbox \ Docker, (Windows) D: \ Dropbox \ R \ Docker)

Es kann sich um einen Editor oder einen Editor handeln. Erstellen Sie daher eine Datei mit dem Namen "Dockerfile" und legen Sie sie im Docker-Verzeichnis ab. Legen Sie in der Regel keine anderen Dateien als "Dockerfile" in das Verzeichnis (dies wirkt sich auf "Docker Build" aus). Da für jeden RUN ein Image erstellt wird, ist es wünschenswert, RUN so weit wie möglich mit einem Backslash \ zu verbinden. [^ 1] [^ 2]

#Basisbild (jede Wippe/*Kann geändert werden in)
FROM rocker/geospatial:latest

#Hinzufügen und Wechseln des japanischen Gebietsschemas zur Betriebssystemumgebung (Rocker basiert auf Debian)
ENV LANG ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
RUN sed -i '$d' /etc/locale.gen \
  && echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen \
    && locale-gen ja_JP.UTF-8 \
    && /usr/sbin/update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
RUN /bin/bash -c "source /etc/default/locale"
RUN ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#Installieren Sie die japanische Schriftart
RUN apt-get update && apt-get install -y \
  fonts-ipaexfont \
  fonts-noto-cjk

Docker build Starten Sie das Terminal (auf dem Mac). Verwenden Sie unter Windows TeraTerm oder Windows Terminal. Gehen Sie zu dem Ort, an dem sich die Docker-Datei befindet.

#Für mich (Mac)/Users/Vom Benutzer/Users/user/Dropbox/Gehe zum Docker

cd Dropbox
cd docker

Verwenden Sie nach dem Verschieben an den Speicherort, an dem sich die Docker-Datei befindet, den Docker-Build -t zum Erstellen. (Dieses Mal ist "" "geo: geospatial")

# /Users/user/Dropbox/docker

docker build -t geo:geospatial .

Führen Sie nach dem Erstellen Docker run aus, verwenden Sie jedoch die Option -v, um das Dateisystem freizugeben, und die Option -p, um die Host- und Container-Ports zu verbinden. [^ 3]

Für Mac

docker run -p 8787:8787 -v C:\Users\user\Dropbox\R\:/home/rstudio -d geo:geospatial

Geben Sie für "C: \ Benutzer \ Benutzer \ Dropbox \ R " einen beliebigen Ordnerpfad ein, den Sie verwenden.

Wenn Sie Laufwerk D in Windows verwenden

docker run -p 8787:8787 -v D:\Dropbox\R:/home/rstudio -d geo:geospatial

Wenn das Verzeichnis auf dem Laufwerk D jedoch nicht ordnungsgemäß bereitgestellt wird, überprüfen Sie die lokalen Sicherheitsrichtlinieneinstellungen. [^ 4]

Für Windows scheint es außerdem besser zu sein, die virtuelle Festplatte auf das Laufwerk D einzustellen. [^ 5]

Greifen Sie über einen Browser auf Rstudio zu

Wenn Sie den obigen Befehl eingeben und keine Fehler vorliegen, wurde RStudio erfolgreich gestartet. Bitte überprüfen Sie unter http: // localhost: 8787. Da ich dieses Mal kein Passwort festgelegt habe, denke ich, dass sowohl Benutzername als auch Passwort mit rstudio angemeldet werden können.

(Bonus) Nutzung von Docker-Compose

Wie oben erwähnt, können Sie Rstudio auch mit "Docker-compose" verwalten. Es ist in Ordnung, den obigen Artikel beizubehalten, aber es ist schwierig, bei jedem Docker-Lauf langen Code zu schreiben und sich daran zu erinnern. In Zukunft möchten Sie möglicherweise auch andere Container als RStudio Server verwenden. In solchen Fällen ist "Docker-Compose" nützlich.

Erstellen Sie "docker-compose.yml"

Erstellen Sie eine Datei mit dem Namen "docker-compose.yml" am selben Speicherort wie "Dockerfile" und bearbeiten Sie sie mit einem Editor. Arbeiten Sie wie oben an Dropbox> Docker. (Beispiel: (Mac) C: \ Benutzer \ Benutzer \ Dropbox \ Docker, (Windows) D: \ Dropbox \ R \ Docker)

Oben, während "Docker Build" und "Docker Run"

docker build -t geo:geospatial .
docker run -p 8787:8787 -v C:\Users\user\Dropbox\R\:/home/rstudio -d geo:geospatial

Ich habe geschrieben, aber wenn Sie dies auf "docker-compose.yml" setzen, wird es wie folgt sein.

version: '3'

services:
  rstudio:
    build: .
    image: geo:geospatial
    container_name: geo
    ports:
      - 8787:8787
    volumes:
      - ../R:/home/rstudio
    tty: true
    stdin_open: true

Vergessen Sie nicht, nach jedem Doppelpunkt (:) und Bindestrich (-) ein Leerzeichen mit halber Breite einzufügen. Zum Beispiel hat version: '3' einen halben Abstand zwischenversion:und' 3'. build :. etc. benötigen außerdem ein halbbreites Leerzeichen vor dem Komma ( .). Befolgen Sie diese als Formatierungsregel.

Auch dieses Mal wird "Volumes" durch einen relativen Pfad angegeben. Wenn Sie den Ordner "C: \ Benutzer \ Benutzer \ Dropbox \ R" als Ausgangsverzeichnis von Rstudio angeben möchten, befinden Sie sich jetzt im Ordner "C: \ Benutzer \ Benutzer \ Dropbox \ Docker". Verwenden Sie also ".." Es geht die Hierarchie hoch (C: \ Users \ user \ Dropbox \) und gibt dann das Verzeichnis / R an.

Durch Angabe eines relativen Pfads ist der Code unabhängig von der Umgebung des von Ihnen verwendeten Computers. Sie können jetzt mit derselben Datei "docker-compose.yml" auf Mac und Windows verwalten.

Build mit Docker-Compose Up -d

Gleich wie bei Docker. Starten Sie das Terminal (auf dem Mac). Verwenden Sie unter Windows TeraTerm oder Windows Terminal. Navigieren Sie zu dem Speicherort, an dem sich die Docker-Datei und die Docker-compose.yml befinden.

#Für mich (Mac)/Users/Vom Benutzer/Users/user/Dropbox/Gehe zum Docker

cd Dropbox
cd docker

Nachdem Sie an den Speicherort verschoben haben, an dem sich "Dockerfile" und "docker-compose.yml" befinden, geben Sie diesmal "docker-compose up -d" anstelle von "docker build" und "docker run" ein und führen Sie es aus. Nur das.

# /Users/user/Dropbox/docker

docker-compose up -d

Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie zunächst, ob Sie vergessen haben, das Feld mit der halben Breite einzufügen. Wenn es kein Problem gibt, sollten Sie in der Lage sein, eine sichere Verbindung zu rstudio unter http: // localhost: 8787 wie in der vorherigen Einstellung herzustellen.

[^ 1]: Auf Dockerfile wurde hier verwiesen: https://k-metrics.github.io/cabinet/env_install_svr.html [^ 2]: Informationen zum Image, das für jeden RUN erstellt wird: https://datawokagaku.com/dockerfile_commands/

Recommended Posts

Vermeiden Sie verstümmelte Zeichen und teilen Sie das Dateisystem in der Docker-Umgebung Rstudio (auch Docoker-Compose).
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
Vielleicht funktioniert es! Erstellen Sie ein Bild mit Docker und teilen Sie es!
Erstellen Sie mit Docker eine Umgebung für Rails5 und postgresql, damit auch pgadmin verwendet werden kann
Zip-Komprimierung, die in einer Java-Umgebung nicht beeinträchtigt wird