Docker tipo di sempre ha un comando USER
per eseguire un processo come utente specifico, ma in generale molte cose devono essere eseguite come ROOT.Docker utilizzando gosu vs USER
Ho visto molte immagini che utilizzano uno ENTRYPOINT
con gosu
per deselezionare il processo da eseguire.
Sono ancora un po 'confuso sulla necessità di gosu
. L'UTENTE non dovrebbe essere sufficiente?
So che un po 'è cambiato in termini di sicurezza con Docker 1.10, ma non sono ancora chiaro sul modo consigliato di eseguire un processo in un container.
Qualcuno può spiegare quando utilizzare gosu
rispetto a USER
?
Grazie
EDIT:
Il Docker best practice guide non è molto chiara: Si dice che se il processo può essere eseguito senza privilegi, usare USER
, se avete bisogno di sudo, si potrebbe desiderare di utilizzare gosu
. Ciò è fonte di confusione perché è possibile installare tutti i tipi di cose come ROOT nello Dockerfile
, quindi creare un utente e assegnargli i privilegi appropriati, quindi passare a quell'utente ed eseguire lo CMD
come tale utente. Allora perché dovremmo aver bisogno di sudo o gosu
allora?
ok, ora comincia a dare un senso – MrE