Onde someImageName é uma imagem. Quando/bin / somebinary sair, a imagem não estará mais em execução.
Eu simplesmente gostaria de executar uma imagem, sem especificar nenhum binário para executar. Sim, Eu simplesmente quero executar os Serviços (por exemplo, systemd / sysvinit) que normalmente são executados dentro do sistema operacional de imagens.
Isso parece ser a coisa mais comum que alguém gostaria de fazer com o Docker, mas tentar executar uma imagem sem um comando retorna:
2014/02/05 14:49:19 Error: create: No command specified
Como posso iniciar um contêiner Docker e executar um sistema operacional completo, em vez de especificar um comando?
Conforme documentado aqui, você simplesmente corre /sbin/init como o comando, assim como qualquer outra inicialização unix de um único usuário para o modo multiusuário.
Os contêineres podem ser sistemas operacionais completos, eles simplesmente não precisam ser (nem as VMs, é apenas mais complicado configurar e gerenciar).
Eu diria que o ponto principal do Docker é tornar os contêineres de aplicativos fáceis, para que você só precise configurar um aplicativo, não todo o sistema operacional.
Docker é um sistema para gerenciamento e implantação de aplicacao contentores, não sistema cisterna. Parece que você está confundindo a execução de um contêiner docker com a inicialização de um sistema operacional.
Seus contêineres do Docker devem ser aplicativos de propósito único, com escopo muito restrito, que podem ser iniciados com um único comando. Se você está procurando algo mais complexo do que isso, o Docker não é a solução que você está procurando. Nesse caso, confira KVM, ESXi, OpenVZ, LXD etc.
Se você está apenas procurando como você pode especificar um padrão CMD e ENTRYPOINT para seus contêineres, você pode fazer isso em tempo de construção usando um Dockerfile.
Basta executar a partir da mesma imagem quantas vezes forem necessárias. Novos contêineres serão criados e eles podem então ser iniciados e stoped cada um salvando sua própria configuração. Para sua conveniência, seria melhor dar a cada um de seus contêineres um nome Com "-- name".
F. i:
docker run --name MyContainer1 <ubuntu image>docker run --name MyContainer2 <ubuntu image>docker run --name MyContainer3 <ubuntu image>
É isso.
$ docker psCONTAINER ID IMAGE CREATED STATUS NAMESa7e789711e62 67759a80360c 12 hours ago Up 2 minutes MyContainer187ae9c5c3f84 67759a80360c 12 hours ago Up About a minute MyContainer2c1524520d864 67759a80360c 12 hours ago Up About a minute MyContainer3
Depois disso, você tem seus contêineres criados para sempre e pode iniciá-los e pará-los como VMs.
docker start MyContainer1
Para entrar no recipiente e fazer o que você quer fazer: