AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1785311
Accepted
g.pickardou
g.pickardou
Asked: 2023-05-22 17:37:27 +0800 CST2023-05-22 17:37:27 +0800 CST 2023-05-22 17:37:27 +0800 CST

Por que o contêiner termina, apesar de eu ter um comando docker exec interativo em execução?

  • 772

Eu tenho o seguinte contêiner que criei usando o seguinte comando:

docker container create --name="my-service" ubuntu:latest sleep 120

Quando eu inicio docker container start my-serviceeste contêiner, ele é executado e sai após 120 segundos, tudo OK.

Agora, em um segundo experimento, inicio o contêiner e, enquanto ele é executado, executo:

docker exec -ti my-service /bin/bash

Pergunta

Após 120 segundos, o bash interativo termina, porque o próprio contêiner termina. Por que e qual é exatamente a lógica do mecanismo docker para fazer isso?

docker
  • 1 1 respostas
  • 67 Views

1 respostas

  • Voted
  1. Best Answer
    u1686_grawity
    2023-05-22T18:32:42+08:002023-05-22T18:32:42+08:00

    Cada contêiner tem sua própria hierarquia de processo e seu comando especificado é aquele que é executado como "PID 1" (o pai de toda a árvore do processo) dentro do contêiner. Sempre que o processo com PID 1 sai, todo o namespace do processo (e com ele, o contêiner) é destruído automaticamente pelo kernel ( não pelo mecanismo do Docker).

    Em contêineres de sistema completo, o PID 1 seria o processo "init"; tê-lo encerrado é como o contêiner solicita que o sistema operacional host seja "desligado". Fora dos contêineres, o PID 1 não tem permissão para sair - se isso acontecer, o sistema travará deliberadamente (você terá um kernel panic), então o comportamento do contêiner é bastante semelhante a isso.

    (Entre outras coisas, o que torna o PID 1 especial é que todos os processos que não têm mais um pai são automaticamente re-paternados sob o PID 1, portanto, ele sempre deve existir.)

    Você pode experimentar namespaces PID usando ferramentas de baixo nível unsharee nsentercomo equivalentes aproximados de seus dois comandos do Docker (você não precisa ter o Docker instalado). Você notará que ps axfdentro do namespace mostra 'sleep' como PID 1 e que sempre que ele sai, o resto do namespace é imediatamente eliminado.

    1. unshare --pid --fork --mount-proc sleep 120

    2. nsenter --all --target=<pid_of_sleep> ps axf,
      nsenter --all --target=<pid_of_sleep> /bin/bash

    • 2

relate perguntas

  • Sem conexão com a Internet no contêiner docker em execução no servidor ubuntu

  • Problema ao buscar http://deb.debian.org/debian/dists/jessie-updates/InRelease com docker

  • Nginx dá 404 para alguns arquivos

  • execute o contêiner do docker como root

  • Comunique-se com o daemon do Docker no Windows

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve