‫OK, os requisitos para esta palestra são que você saiba como iniciar um contêiner de palestras anteriores.
‫E acabamos de terminar a última palestra falando sobre ver o que está acontecendo em um contêiner do lado de fora.
‫E isso é tudo sobre entrar em um recipiente para mexer com o interior.
‫Então, há alguns comandos que podemos usar.
‫O primeiro é o contêiner com um traço I. T. e vamos falar sobre como o traço eu T. funciona para realmente
‫obter um shell dentro do contêiner e, em seguida, para executar contêineres que você deseja executar um segundo processo.
‫Você também pode usar o exec do contêiner e mostraremos vários exemplos disso.
‫E então, ao longo do caminho, vamos mencionar algumas diferenças entre uma distribuição regular do Linux, como o
‫Ubuntu, para instalar em uma máquina virtual ou em hardware e, em seguida, como esses destruidores de
‫links são dentro de um contêiner.
‫Vamos começar.
‫Então, olhar para um contêiner de fora é muito útil às vezes, mas uma das primeiras perguntas que as
‫pessoas costumam me perguntar é como eu entro no contêiner e realmente faço as coisas nele ao vivo a partir
‫da linha de comando.
‫E às vezes as pessoas confundem isso com o desejo de um SS age server dentro de seu contêiner para que
‫eles possam fazer SSA, mas na verdade não precisamos fazer isso porque temos vários comandos à nossa disposição que
‫nos permitem obter um shell dentro do próprio container enquanto é corrida.
‫E o primeiro é apenas um comando docker container run.
‫Mas vamos especificar algumas opções extras.
‫Nós vamos fazer um traço I. T. agora o traço I. T. Na verdade, são duas opções separadas.
‫E se eu mostrar a ajuda rapidinho você pode ver que o T realmente nos dá uma pseudo ou um prompt similar ao que você teria através da SSA
‫H e então se nós rolarmos até o I e isso é realmente o que nos permite
‫manter isso sessão aberta para que possamos continuar a executar mais comandos por isso, se fizermos um contêiner docker executar traço T
‫e, em seguida, executar outro mecanismo X vamos chamá-lo de proxy e, em seguida, teremos que especificar um comando alternativo se você se lembra no início deste seção onde falamos
‫sobre o formato da linha de comando docker quando você está fazendo um contêiner docker
‫executar como você pode ver através da ajuda aqui no final após a imagem você tem
‫comando opcional e argumentos que você pode enviar para este novo recipiente que você está prestes a
‫começar a dizer o que deve ser executado.
‫A imagem tem um comando padrão que veremos mais tarde como configurar, mas se você quiser alterar o que
‫foi executado na inicialização, pode fazer isso diretamente da linha de execução.
‫Então vamos apenas dizer bash porque bash é um dos shells comuns que você normalmente encontraria em um container que eu
‫lhe darei um shell para trabalhar e olhar para isso.
‫Eu estou em um prompt Agora você vai notar o meu prompt diz root, que é o usuário que o contêiner começou, uma vez que na verdade
‫não significa que eu sou root no host.
‫Significa apenas que estou agindo como root no contêiner e esse número depois que ele é realmente o contêiner
‫I. D ..
‫Então, se eu fizer um dash eu recebo uma lista completa de tudo em que estou.
‫E você pode ver que estou no caminho da raiz do sistema de arquivos dentro do contêiner.
‫Então, eu estou realmente olhando para todos os arquivos dentro do contêiner que é baseado na próxima imagem do mecanismo.
‫E a partir daqui eu poderia ir alterar arquivos de configuração Eu poderia baixar pacotes da Internet e fazer praticamente qualquer coisa
‫administrativa comum que você faria de um shell normal.
‫Então, para sair deste show, quando você terminar com um tipo de saída, como você faria com qualquer shell e
‫agora que o contêiner parou, se nós realmente fizemos contêiner docker, a menos que você não iria vê-lo lá.
‫Lembre-se de que chamamos de proxy.
‫Então eu tive que fazer um traço e está lá.
‫Agora veja o comando que ele executa o comando padrão para um contêiner X do mecanismo é executar o próprio programa X
‫do mecanismo.
‫Mas quando nós digitamos nosso último comando, nós mudamos o programa padrão para realmente ser o
‫bash, o que nos deu o shell e quando saímos do shell, o contêiner parou porque os contêineres só são executados contanto
‫que o comando executado na inicialização seja executado.
‫E desde que nós mudamos isso para bater simplesmente sair do bash, pare com isso.
‫Agora, se eu usei uma distribuição completa do Linux em vez de realmente fazer o motor x.
‫Vamos fazer um Ubuntu completo e ele realmente vai baixar a imagem do Ubuntu e me colocar no prompt
‫desse novo contêiner.
‫Se você já usou o Ubuntu você sabe sobre o gerenciador de pacotes de aplicativos e para que eu
‫possa usar isso aqui como eu faria em um servidor Ubuntu padrão e eu poderia realmente instalar algo para instalar o
‫Dash Sim Perl.
‫Agora, a coisa sobre o Ubuntu e outras distribuições dentro de um contêiner é que elas geralmente são mínimas.
‫Um vivo C. D. ou um download do ISO do seu
‫boon para o qual você normalmente colocaria em uma máquina virtual vai ter muito mais software instalado por padrão do que um container Ubuntu
‫que é realmente uma versão mínima do Ubuntu que você pode sempre adicionar mais software para com o gerenciador de pacotes de aplicativos.
‫Então agora esse container em execução tem o curl instalado e eu posso usá-lo como faria
‫em uma máquina local e assim que eu sair do shell ele irá parar o container docker do container a menos que ele saiba que
‫eu não o vejo e há uma imagem do Ubuntu que acabamos de correr.
‫Agora, se eu iniciei o container novamente, ele teria o curl instalado nele, mas se eu criasse um novo container
‫da imagem do Ubuntu, esse contêiner diferente não teria a linha de comando do kernel instalada.
‫Agora, e se nós quiséssemos reexecutar aquele contêiner e sermos reprimidos de volta nele novamente?
‫Bem, poderíamos usar o comentário inicial do contêiner docker agora.
‫Você notará que é um pouco diferente quando iniciamos um contêiner existente, mas é semelhante ao I. T.
‫é só um A.
‫E então o nome do nosso contêiner que você deu para aqueles estava de volta e eu
‫posso enrolar o Google novamente e ele funciona e se eu sair, pare de novo.
‫Agora, se eu quiser realmente ver o shell dentro de um contêiner em execução que já está executando algo
‫como minha sequela ou motor x.
‫Bem, podemos fazer isso também.
‫E isso é usando o recipiente docker de comando exato.
‫Exatamente.
‫E você pode ver que temos algumas opções aqui.
‫E o mais comum é dizer que eu quero pular para o container My School porque eu preciso
‫fazer algumas coisas administrativas na My School.
‫Eu poderia fazer o I. T. novamente e, em seguida, o nome do contêiner e, em seguida, o programa.
‫Eu quero correr.
‫E neste caso, mais uma vez é bash e agora estou no recipiente com a minha sequela.
‫Eu posso realmente fazer um PSA um UX dentro do container que lista os processos e isso, é claro, me mostrará o demônio
‫mais igual que está rodando em segundo plano, bem como o processo bash em que eu estou atualmente sentado, assim
‫como o P . S. comando que acabei de executar neste shell.
‫Eu poderia pular para a minha sequela com a linha de comando minha sequela e você
‫notará quando eu sair deste bash shell a menos que minha sequela ainda esteja rodando porque o container docker exato executa
‫um processo adicional em um container rodando existente.
‫Isso não afetará o processo raiz do demônio My School.
‫Então vamos tentar mais um.
‫Como você pode ver aqui, isso é muito útil para pular em contêineres.
‫Precisamos solucionar problemas ou quando você precisa alterar algo ligeiramente em um sistema em execução,
‫bem como usar contêineres de distribuições diferentes para fornecer o ambiente que você teria se tivesse uma
‫máquina completa como um Ubuntu ou um Alpine.
‫Agora o que é alpino.
‫Nós não mencionamos Alpine antes Alpine é outra distribuição do Linux, mas Alpine é projetado para ser
‫muito pequeno.
‫Na verdade, é apenas 5 Meg de tamanho.
‫Se eu fizer um docker puxar Alpine que vai puxar para baixo a imagem mais recente Alpine e se eu fizer uma imagem docker, a
‫menos que você pode ver quão pequeno o Alpine Limoges em comparação com o Ubuntu assim que a coisa interessante sobre Alpine é
‫que também vem com o seu próprio gerenciador de pacotes e assim você verá Alpine como uma
‫opção desencaixar ou hub muito na próxima seção quando passarmos por imagens e Docker Hub,
‫mas por enquanto vamos fazer um show dentro do contêiner de caminhoneiros Alpine executado por T.
‫Festança Alpina.
‫Agora o que aconteceu aqui por que eu peguei um ar me diz que ele está começando
‫a conter um processo e faz com que o arquivo executável bash não seja encontrado no caminho e o que isso realmente significa é que
‫o bash não está no contêiner.
‫E isso remonta ao conceito de que só podemos executar coisas no contêiner que já existe em sua
‫imagem.
‫Quando você começou ou talvez algo que você adicionou posteriormente através dos comandos exatos ou executados.
‫Mas neste caso, como eu iria entrar na imagem alpina.
‫O Well Alpine é tão pequeno que não tem nada de especial nele, mas ele tem SDH. Assim, podemos substituir o comando
‫por S H, que não é tão completo quanto o bash, mas nos leva direto para o container.
‫E se você fosse pesquisar o Alpine Linux na Internet, você aprenderia que o gerenciador
‫de pacotes é um P. K. e poderíamos usar isso para instalar o bash se realmente precisássemos dele.
‫OK.
‫Apenas para recapitular rapidamente o que aprendemos nesta lição, aprendemos sobre o traço I. T. opção para o contêiner
‫executar que nos dá o equivalente a um shell interativo para realmente fazer as coisas em um contêiner
‫como faríamos se estivéssemos SSA em um servidor de algum tipo.
‫Então aprendemos um novo comando para o contêiner docker exatamente com o I. T. Isso faz exatamente a
‫mesma coisa que executar, mas o faz em um contêiner existente que não está executando um novo contêiner.
‫E, por último, aprendemos um pouco sobre a Alpine e como isso é diferente das principais distribuições de Linux e
‫como elas realmente são para tamanho de mag e ideais para imagens de contêineres.