Come posso passare le variabili di ambiente ai contenitori Docker?



Answers

Puoi passare usando -e parametri con il comando docker run .. come menzionato here e come menzionato da @errata.
Tuttavia, l'eventuale svantaggio di questo approccio è che le credenziali verranno visualizzate nell'elenco dei processi, dove viene eseguito.
Per renderlo più sicuro, è possibile scrivere le proprie credenziali in un file di configurazione e eseguire la docker run con --env-file come indicato here . Quindi puoi controllare l'accesso a quel file di configurazione in modo che altri utenti che hanno accesso a quella macchina non vedano le tue credenziali.

Question

Sono nuovo di Docker, e non è chiaro come accedere a un database esterno da un contenitore. È il modo migliore per codificare nella stringa di connessione?

# Dockerfile
ENV DATABASE_URL amazon:rds/connection?string



Un altro modo è usare i poteri di /usr/bin/env :

docker run ubuntu env DEBUG=1 path/to/script.sh



Utilizzare -e o --env per impostare le variabili di ambiente (predefinito []).

Un esempio da uno script di avvio:

 docker run  -e myhost='localhost' -it busybox sh

Se si desidera utilizzare più ambienti dalla riga di comando, prima di ogni variabile di ambiente utilizzare il flag -e .

Esempio:

 sudo docker run -d -t -i -e NAMESPACE='staging' -e PASSWORD='foo' busybox sh

Nota: assicurati di inserire il nome del contenitore dopo la variabile di ambiente, non prima.

Se hai bisogno di impostare molte variabili, usa il flag --env-file

Per esempio,

 $ docker run --env-file ./my_env ubuntu bash

Per qualsiasi altro aiuto, consulta la guida di Docker:

 $ docker run --help

Documentazione ufficiale: https://docs.docker.com/compose/environment-variables/









Links