2015-10-25 18 views
5

In che modo lo spazio dei nomi delle finestre mobili è diverso dallo spazio dei nomi Host e come è possibile mappare il pid tra questi due? Qualcuno può darmi un'idea che aiuti a rendere più facile la mappatura del pid tra host e docker usando il codice sorgente?Mappatura PID tra finestra mobile e host

risposta

5

Come ho detto nel "Running docker securely":

Attualmente, Portuale utilizza cinque spazi dei nomi di alterare i processi di vista del sistema: Processo, Network, il Monte, nome host, la memoria condivisa.

Il fatto che, per impostazione predefinita, come ho detto nella tua domanda precedente "Docker Namespace in kernel level" il pid del contenitore sono isolati dall'host (a meno che non li esegue con --pid host) è di progettazione.

Se si utilizza --pid=host, tali pids del contenitore sono visibili dall'host, ma non facilmente corrispondenti a un determinato contenitore, non prima che sia risolto .

Aggiornamento maggio 2016: issue 10163 and --pid=container:id in realtà risolto da PR 22481 per la finestra mobile 1.12, che consente di unirsi allo spazio dei nomi PID di un altro contenitore.

+0

Se eseguo qualche script di shell all'interno del contenitore docker e questo richiama qualche syscall, quella volta passerà il pid dell'host o del processo pid di docker? per favore aiuto qui –

+0

@SowndaryaK se si utilizza --pid = host, il pid del processo nel contenitore mobile farà parte del dominio pid host. – VonC

3

È possibile trovare la mappatura nel file /proc/PID/status. Esso contiene una linea come:

NSpid: 16950 24 

Il che significa che 16950 sull'host è 24 all'interno del contenitore.