O usuário do Docker que está executando um processo não pode ser removido

3

Eu tenho alguns recursos usados por um usuário específico que eu tive que deletar porque estava tirando muitos recursos do servidor. Quando eu listei os processos no servidor, o usuário excluído agora aparece como “1001” em vez do nome que ele usou para mostrar antes de excluí-lo.

%Cpu(s): 19.8 us, 29.5 sy,  0.0 ni, 50.7 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  3882456 total,   183568 free,  2003808 used,  1695080 buff/cache
KiB Swap:  1679356 total,  1155300 free,   524056 used.  1463480 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
9192 1001      20   0 2068436  74700  10284 S   0.3  1.9   3:02.86 node 

Usando systemctl status , encontrei o processo e o ID do contêiner do Docker em que o usuário está executando está em:

       ├─docker
       │ ├─42b40e73687acb7fcd9a0e43372ced7588b5568c942f740d06510ab0e85b1462
       │ │ ├─17156 /bin/sh -e /usr/local/sbin/start.sh
           └─11148 node --debug --nolazy dist-release/server

Então, entrei no contêiner e observei o arquivo start.sh, mas é apenas um arquivo executável. Não há indicação dentro do arquivo de que o usuário está sendo chamado dentro do arquivo executável.

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                                                                                                                   NAMES
    apiassets_1
42b40e73687a        local.io/api-statements:development     "start.sh"               21 hours ago        Up 18 hours         0.0.0.0:32785->3000/tcp, 0.0.0.0:5966->5858/tcp    

O que eu quero fazer é impedir que esse usuário use esses recursos, por isso fiquei curioso para saber como esse usuário está chamando esse script para interrompê-lo ou como posso pará-lo.

    
por VaTo 08.03.2017 / 00:29

1 resposta

0

Apenas para qualquer um que esteja seguindo o meu problema. Era um pouco estranho o que estava acontecendo, mas o usuário que estava executando esse processo tinha o mesmo ID dentro do contêiner do docker que o host, então, quando listei todos os processos, o ID do usuário dentro do contêiner estava ficando mapeado para um usuário específico que eu tinha no host. O que explica porque quando eu deletei o usuário no host, eu ainda estava vendo que o processo estava sendo executado como "1001".

Então, agora estou claro que é assim que deve estar funcionando.

Eu também olhei para essa ferramenta chamada csysdig caso alguém esteja interessado, o que parece resolver um problema como o que eu tinha desde que lhe daria informações específicas sobre cada recipiente. No meu caso, eu estava vendo processos acontecendo no host, bem como os contêineres, por isso foi muito difícil realmente inspecionar o que estava acontecendo.

    
por 09.03.2017 / 03:38