Personalizzazione del contenitore RStudio con Docker Compose |  di Rami Krispin |  Marzo 2024

 | Intelligenza-Artificiale

Una guida passo passo per personalizzare e avviare RStudio Server all'interno di un contenitore con Docker Compose

In questo post esamineremo i passaggi per la configurazione di a Docker-Compose flusso di lavoro per avviare un server RStudio all'interno di un contenitore. Introdurremo il processo di impostazione di Docker Compose e discuteremo quando dovresti prendere in considerazione l'utilizzo. Ultimo ma non meno importante, dimostreremo come eseguire la transizione del file docker run flusso di lavoro introdotto nel file messaggio precedente e avviare il Immagine del Rocker RStudio con il processo Docker Compose.

Articoli Correlati:

Entro la fine di questo tutorial sarai in grado di eseguire la transizione del tuo file docker run impostazioni su a docker-compose.yml file e avvia senza problemi il tuo contenitore RStudio con il file docker-compose comando.

Avvio di RStudio Server all'interno di un contenitore con Docker Compose (screenshot dell'autore)

Motivazione

Prima di iniziare, spieghiamo cos'è Docker Compose e quando dovresti considerare di utilizzarlo.

A partire da Che cosa – Docker Compose è un framework semplicistico per il lancio di contenitori singoli o multipli. È un involucro del docker run comando e gestisce le impostazioni di avvio del contenitore utilizzando un file YAML. Si consiglia di impostare un flusso di lavoro Docker Compose invece di utilizzare il file docker run comando Quando:

  • Il numero di argomenti didocker run comando aumenta e diventa complicato gestirlo tramite la CLI
  • Utilizzi e lavori regolarmente con il contenitore
  • Il livello di complessità è elevato (ad esempio, lancio di più contenitori in parallelo, ecc.)

Noi usiamo il docker-compose.yml file per configurare un framework Docker Compose e avviarlo con il file docker-compose comando. Questo processo include la mappatura del file docker run argomenti in formato YAML. Semplice docker-compose.yml le impostazioni del file includeranno i due argomenti seguenti:

  • Versione — la versione Docker Compose, che attualmente è la 3.9
  • Servizi — un elenco di contenitori da avviare e i relativi argomenti corrispondenti

Illustriamo il processo di mappatura del file docker run argomenti del comando al docker-compose.yml file con l'esempio seguente:

docker run -argument_a argument_a_values \
-argument_b argument_b_values \
-argument_c argument_c_values \
IMAGE_NAME/IMAGE_TAG

Dove questo comando ha i seguenti tre argomenti: argument_a, argument_b, argument_ce i loro valori corrispondenti sono argument_a_values, argument_b_values, argument_c_valuese richiamando la seguente immagine — IMAGE_NAME/IMAGE_TAG.

Il sotto docker-compose.yml rappresenta la mappatura di quanto sopra docker run argomenti:

version: "3.9"
services:
my_service:
image: "IMAGE_NAME/IMAGE_TAG"
argument_a:
- "argument_a_values"
argument_b:
- "argument_b_values"
argument_c:
- "argument_c_values"

IL version E services Gli argomenti, come accennato in precedenza, definiscono rispettivamente la versione di Docker Compose e l'elenco di immagini da avviare durante il runtime. In questo caso utilizziamo la versione più recente, la 3.9, e definiamo un unico contenitore sotto il file services argomento denominato my_service. Sotto il my_service sezione, definiamo gli argomenti di runtime corrispondenti a quanto sopra docker run argomenti del comando che seguono il formato YAML standard.

È importante notare che la convenzione di denominazione mappa tra i file docker run argomenti del comando e le relative impostazioni nel file docker-compose.yml il file non è sempre uno a uno. La documentazione di Docker Compose è un'ottima risorsa per identificare le impostazioni degli argomenti.

Nella sezione successiva, collegheremo i punti e mapperemo il docker run comando che abbiamo impostato nel tutorial precedente su a docker-compose.yml file.

Impostazione di RStudio con Docker Compose

Ricordiamolo nel esercitazione precedenteabbiamo usato il seguente docker run comando per avviare il server RStudio all'interno di un contenitore:

docker run --rm -ti \
-v .:/home/rstudio \
-v $HOME/.config/rstudio:/home/rstudio/.config/rstudio \
-v $HOME/.Renviron:/home/rstudio/.Renviron \
-e PASSWORD=yourpassword \
-p 8787:8787 rocker/rstudio

In breve, il comando run precedente utilizza i seguenti argomenti:

  • Volume o v per montare le cartelle locali con il file system contenitore
  • Ambiente o e per impostare la password del server RStudio come variabile di ambiente
  • Porto o p per mappare i porti locali e quelli per container

Il file YAML seguente rappresenta la mappatura di quanto sopra docker run comando:

version: "3.9"
services:
rstudio:
image: "rocker/rstudio"
ports:
- "8787:8787"
volumes:
- type: "bind"
source: "."
target: "/home/rstudio"
- type: "bind"
source: "$HOME/.config/rstudio"
target: "/home/rstudio/.config/rstudio"
- type: "bind"
source: "$HOME/.Renviron"
target: "/home/rstudio/.Renviron"
environment:
- PASSWORD=yourpassword

Dove impostiamo un unico servizio denominato rstudio sotto il services argomento e definito gli argomenti di esecuzione corrispondenti:

  • image — definisce il nome dell'immagine, in questo caso, utilizzando l'immagine RStudio Rocker rocker/rstudio
  • ports — imposta la mappatura delle porte tra la macchina locale e il contenitore
  • volumes – mappa il montaggio delle cartelle, utilizzando il file type argomento per definire il tipo di montaggio e il file source E target argomenti per definire la mappatura del percorso della cartella locale e del contenitore. Maggiori dettagli sugli argomenti relativi al volume possono essere trovati Qui.
  • environment — definisce le variabili di ambiente, in questo caso, impostiamo PASSWORD variabile per definire la password del server RStudio

Una volta impostato il file YAML, possiamo utilizzare il file docker-compose comando sulla CLI per avviare il contenitore RStudio:

docker-compose up

Dove il up argomento viene utilizzato per avviare il contenitore. Dovresti aspettarti il ​​seguente output:

(+) Running 2/2
✔ Network rstudio-docker_default Created 0.1s
✔ Container rstudio-docker-rstudio-1 Created 0.1s
Attaching to rstudio-docker-rstudio-1
rstudio-docker-rstudio-1 | (s6-init) making user provided files available at /var/run/s6/etc...
rstudio-docker-rstudio-1 | exited 0.
rstudio-docker-rstudio-1 | (s6-init) ensuring user provided files have correct perms...
rstudio-docker-rstudio-1 | exited 0.
rstudio-docker-rstudio-1 | (fix-attrs.d) applying ownership & permissions fixes...
rstudio-docker-rstudio-1 | (fix-attrs.d) done.
rstudio-docker-rstudio-1 | (cont-init.d) executing container initialization scripts...
rstudio-docker-rstudio-1 | (cont-init.d) 01_set_env: executing...
rstudio-docker-rstudio-1 | skipping /var/run/s6/container_environment/HOME
rstudio-docker-rstudio-1 | skipping /var/run/s6/container_environment/PASSWORD
rstudio-docker-rstudio-1 | skipping /var/run/s6/container_environment/RSTUDIO_VERSION
rstudio-docker-rstudio-1 | (cont-init.d) 01_set_env: exited 0.
rstudio-docker-rstudio-1 | (cont-init.d) 02_userconf: executing...
rstudio-docker-rstudio-1 | (cont-init.d) 02_userconf: exited 0.
rstudio-docker-rstudio-1 | (cont-init.d) done.
rstudio-docker-rstudio-1 | (services.d) starting services
rstudio-docker-rstudio-1 | (services.d) done.

Dopo aver avviato il contenitore, puoi accedere al server RStudio dal tuo browser utilizzando l'indirizzo host locale con il numero di porta, in questo caso — http://localhost:8787:

RStudio Server all'interno di un contenitore (screenshot dell'autore)

Nota: Una volta avviato il contenitore con il file docker-compose up comando, mantiene la CLI collegata al terminale finché non la arresta. In alternativa è possibile aggiungere il d argomento per eseguirlo in modalità scollegata:

docker-compose up -d

Allo stesso modo, il docker-compose down il comando interrompe il runtime del contenitore.

Riepilogo

In questo tutorial, abbiamo esaminato come configurare un framework Docker Compose per avviare il contenitore RStudio. Ciò include l'impostazione di a docker-compose.yml file e utilizzando il file docker-compose comando per avviare il contenitore in modo conciso.

Le motivazioni per incartare il tuo docker run comando con Docker Compose sono:

  • Efficiente e conciso: è necessaria un'impostazione una tantum e, successivamente, il tempo di avvio è semplice con ildocker-compose comando (al contrario di un long docker run comando)
  • Maggiore complessità: semplifica il processo di lancio di uno o più contenitori senza soluzione di continuità. Ad esempio, un buon caso d'uso potrebbe essere l'esecuzione congiunta del database RStudio e Postgres. In questo caso, puoi impostare il processo Docker Compose per avviare i due contenitori in modo che funzionino fianco a fianco

Risorse

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *