2016-03-01 23 views
10

per impostazione predefinita quando si esegueConnessione a finestra mobile contenitore come utente non root

docker run -it [myimage]

O

docker attach [mycontainer]

si connette al terminale come utente root, ma vorrei connettersi come utente diverso. È possibile?

+0

Sì. 'finestra mobile run --user user_name' –

+0

e allegare? – Andy59469

+1

Non esiste una tale opzione per il collegamento. Dovrai effettuare il login come utente root e poi su su user_name' –

risposta

15

Per docker run:

È sufficiente aggiungere l'opzione --user <user> di cambiare ad un altro utente quando si avvia il contenitore di finestra mobile.

docker run -it --user nobody busybox 

Per docker attach o docker exec:

Poiché il comando viene usato per collegare/eseguire nel processo esistente, quindi utilizza lì direttamente l'utente corrente.

docker run -it busybox # CTRL-P/Q to quit 
docker attach <container id> # then you have root user 
/# id 
uid=0(root) gid=0(root) groups=10(wheel) 

docker run -it --user nobody busybox # CTRL-P/Q to quit 
docker attach <container id> 
/$ id 
uid=99(nobody) gid=99(nogroup) 

Se davvero si vuole allegare l'utente che si desidera avere, quindi

  1. partenza con quell'utente run --user <user> o di riportarlo nel Dockerfile utilizzando USER
  2. cambiare l'utente utilizzando `su
3

È possibile specificare USER nel file Docker. Tutte le azioni successive verranno eseguite utilizzando quell'account. È possibile specificare USER una riga prima dello CMD o ENTRYPOINT se si desidera utilizzare tale utente solo all'avvio di un contenitore (e non durante la creazione dell'immagine). Quando si avvia un contenitore dall'immagine risultante, si collegherà come utente specificato.

11

È possibile eseguire una shell in un contenitore mobile utilizzando un comando come:

docker exec -it --user root <container id> /bin/bash

+0

* root * è l'utente predefinito. L'opzione '--user' può essere omessa quando i comandi devono essere eseguiti come root, suppongo. – Stphane

0

L'unico modo in cui sono in grado di farlo funzionare è di:

docker run -it -e USER=$USER -v /etc/passwd:/etc/passwd -v `pwd`:/siem mono bash su - magnus

quindi devo sia specificare variabile d'ambiente $ USER oltre un punto il file/etc/passwd . In questo modo, posso compilare la cartella/siem e mantenere la proprietà dei file non come root.

Problemi correlati