Possiamo eseguire uno script come root durante l'avvio del contenitore docker?


3

Sto cercando di eseguire uno script durante l'avvio del contenitore.

Per una normale macchina Linux, se ho uno script in /etc/rc.local lo script verrà eseguito quando ci sarà il riavvio

Sto cercando di fare la stessa cosa, quando costruisci l'immagine di Docker. Ho scavalcato il /etc/rc.local file con nuovi contenuti, quindi eseguo

sudo docker run -d <image id>

stavo aspettando /etc/rc.local sarebbe eseguito, tuttavia non succede nulla.

Lo sto facendo nel posto sbagliato?

Risposte:


1

Docker esegue solo il processo (oi processi) che gli dici di eseguire.

I contenitori Docker normalmente non hanno un sistema init funzionante. Non sono come macchine virtuali che contengono un sistema operativo completo che esegue tutte le inizializzazioni all'avvio.

Se vuoi /etc/rc.local per correre, devi avviarlo da solo. Qualcosa di simile a:

docker run image /bin/bash -c "/etc/rc.local; <your command>"

Esistono alcune immagini di base alternative che supportano i servizi in esecuzione all'avvio, ad es. Phusion / baseimage-finestra mobile .

Leggere Questo articolo per capire quali sono i problemi e problemi con Docker e l'avvio di un contenitore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.