‫Olá.
‫Este vídeo se deve a duas razões.
‫Primeiro, é para o caso de você não querer dirigir o Docker localmente.
‫Você quer executar o Docker em um servidor remotamente, seja para produção, algum outro uso do servidor, ou simplesmente
‫porque você não pode executar o Docker localmente para licenciar recursos de desempenho, você sabe que não é um administrador local.
‫Poderia ser todo tipo de razão.
‫Trata-se, portanto, do motor Docker para servidores Linux.
‫A razão pela qual eu digo que é o motor e os servidores são componentes chave que vamos entrar em todo este vídeo.
‫Este vídeo vai se concentrar em obter o Docker mais atualizado instalado a partir do local correto, o que
‫é diferente de seus gerentes de pacotes Linux padrão.
‫Então nos certificaremos de que o fornecimento seja instalado onde quer que você vá operá-lo, de
‫modo que não entre no servidor o tempo todo.
‫Vamos realmente configurá-lo para que possamos controlá-lo remotamente, que é a melhor maneira de rodar
‫um motor Docker em um servidor Linux?
‫E um pequeno aviso, se você ainda não assistiu ao vídeo anterior, que é sobre o desktop
‫Docker para desktops Linux, isto não é isso.
‫Isto é antes de termos a área de trabalho Docker, nós tínhamos apenas o motor Docker.
‫Cada mesa Docker tem um motor Docker.
‫Ele gerencia para você, mas o motor Docker, é um único binário chamado Docker D ou o Docker Daemon, e que pode
‫operar em qualquer servidor Linux.
‫Desde que você tenha um kernel Linux, você pode executar essa mesma coisa.
‫Você pode executá-lo em um Windows Server, o Docker RD ESXi que poderia realmente funcionar como um serviço em um servidor Windows para executar
‫o Windows Containers.
‫Mas não vamos falar sobre isso neste vídeo.
‫Portanto, a área de trabalho Docker, que é para rodar em seu sistema local, é realmente apenas para uso local do
‫Docker.
‫Mas este é o motor Docker que pode rodar em qualquer sistema Linux, seja ele local ou remoto, seja
‫um VM ou um servidor físico, seja um Raspberry Pi, seja ele qual for.
‫Se estiver rodando um kernel Linux, ele está na lista e o Docker tem uma lista compatível de construções suportadas testadas que
‫eles sabem que funcionam.
‫Não é toda distribuição Linux por aí.
‫Não inclui o BSD, que tecnicamente não é Linux, e está realmente focado apenas nos grandes, você
‫sabe, o Centro Oeste, o chapéu vermelho, o Ubuntu, o Debian, esse tipo de coisas.
‫E há várias arquiteturas que ele vai apoiar.
‫Portanto, como referência neste vídeo, você verá o link para esta página que mostra a lista de distribuições
‫Linux atualmente suportadas para motor.
‫É claro que vou usar Docker no Ubuntu, minha distribuição Linux de servidores favoritos, e vou passar
‫por ela.
‫Eu vou passar por cima dos detalhes porque realmente você vai apenas ler isto ou executar o roteiro, sobre
‫o qual falaremos a seguir.
‫Agora, sim, estou lhes dando links como recursos para este vídeo para toda a documentação em torno de todas as formas
‫de instalá-lo em variantes do Linux, distribuições como Ubuntu, Fedora e todas as outras.
‫Mas realmente a maneira mais fácil de fazer isso na maior parte do tempo é apenas executar um roteiro.
‫Se você digitar em seu navegador, obtenha o Docker.
‫Isso lhe dará um script de shell que você pode ver, pode baixar, pode ser executado automaticamente.
‫Com o Curl, o objetivo é basicamente obter as configurações corretas e desinstalar as coisas velhas, instalar as coisas novas,
‫garantir que você esteja obtendo as fontes certas e todas essas coisas de uma só vez.
‫É assim que sempre instalei o Docker, desde que aprendi sobre ele, há muito tempo no início
‫do projeto.
‫Assim, talvez para aprender, talvez na primeira vez que você instalar o Docker em um servidor Linux, você vá seguir
‫a documentação que passa passo a passo com seu gerente de pacotes.
‫Talvez seja apto, talvez seja yum, talvez seja APK apenas dependendo do que você está fazendo em sua distro Linux.
‫Mas eu vou usar este roteiro, que é mais fácil.
‫Basicamente, ele está enrolando o roteiro em um arquivo e depois executando esse arquivo com uma concha.
‫E isto é exatamente o que esse roteiro, se você fosse ao último slide, ele lhe diria para copiar e colar
‫isso e copiar e depois executar.
‫Portanto, estamos fazendo isso e ele vai descobrir em qual distribuição eu estou, em qual versão dessa
‫distribuição, se eles têm suporte, se ela será conectada, neste caso, apta ao gerenciador de pacotes com a chave para garantir
‫que você obtenha o direito.
‫Repositório para sua instalação, e então esse comando é executado por alguns minutos, dependendo da velocidade do seu servidor.
‫E então você acaba aqui de volta com a linha de comando Docker, o motor Docker ou Daemon
‫e algumas outras utilidades.
‫Normalmente vem com algum plug ins como o kit de construção para construir imagens, componha para rodar isso.
‫Vamos entrar em tudo isso ao longo do curso.
‫Portanto, perceba que há talvez quatro ou cinco binários flutuando em seu sistema.
‫Agora, como todas as outras formas que você pode instalar o Docker, faça um comando da versão espacial do Docker, digite
‫esse comando em seu shell, e você deverá recuperar pelo menos a versão cliente de linha de comando e a versão do servidor.
‫Quando você voltar aquela versão do servidor, isso significa que você poderá falar com a API do servidor naquele servidor.
‫Se você estiver no shell do servidor, então tecnicamente está falando com os anfitriões locais usando um socket.
‫Só quero lembrar que tudo o que você acabou de fazer ali é de código aberto, o motor Docker, a linha
‫de comando Docker, tudo o que está lá dentro.
‫Todos eles são de fonte totalmente aberta.
‫A área de trabalho Docker licenciada pelo Apache, no entanto, dos vídeos anteriores está incluindo todas essas coisas,
‫bem como software de código fechado ou licenciado pela Docker.
‫A área de trabalho do Docker é muito mais um superconjunto de um monte de coisas diferentes.
‫O motor Docker aqui que estamos instalando é apenas o mínimo necessário.
‫É o daemon que você precisa para operar um contêiner em Docker.
‫E como lembrete, como já fiz em vídeos anteriores, se você usar o comando de login Docker porque
‫você só tem acesso à linha de comando aqui, se você digitar o espaço Docker, faça
‫o login com seu Docker ID e isso lhe dará mais piscinas.
‫Se você se lembra, pools são as coisas dos primeiros vídeos deste curso que contêm o software.
‫Você puxa a imagem e depois a executa como um recipiente e faz isso um certo número de vezes.
‫E Docker pode eventualmente reclamar e dizer: Ei, olha, você excedeu e eu acho que o número
‫atual é como 106 horas.
‫Diz que você excedeu o número de piscinas.
‫Bem, se você estiver atrás de um firewall corporativo e todos em sua empresa estiverem todos usando Docker e
‫estiverem todos atrás de um único endereço IP, esse limite pode ser atingido muito rapidamente.
‫Mas se você simplesmente entrar, a Docker lhe dá pelo menos o dobro da quantidade de puxadas por nada gratuitamente com a conta gratuita se
‫você pagar pela Docker, o que você não precisa fazer com este curso, mas se você quisesse
‫pagar pela Docker para uma assinatura da Docker, você obteria, eu acho, piscinas ilimitadas desde que você entrasse
‫com essa conta.
‫Mas passemos a controlar este daemon localmente.
‫Agora, o que vai acontecer aqui é qualquer sistema que você vá usar, digamos que isto é uma configuração
‫de servidor, ou pode ser apenas que você não queira rodar o Docker em sua máquina local.
‫Talvez você não tenha permissão, talvez não possa.
‫Talvez você não tenha recursos suficientes.
‫Talvez você não esteja enraizado em sua máquina local.
‫Mas você tem a capacidade de operar o Docker nesta máquina remota.
‫Bem, você não precisa sentar na concha daquela máquina remota e digitar todos os seus comandos lá e fazer todo
‫o seu trabalho de código fonte lá ou clonar o repo para este curso.
‫Lá não se pode fazer nada.
‫Você pode ignorar isso.
‫Você pode realmente instalar o Docker lá e nós vamos falar com ele remotamente.
‫Agora, vamos voltar por um segundo.
‫Anos atrás, antes deste recurso de túnel SSH existir em algum lugar por volta de 2018, então antes disso você teria que entrar
‫no servidor e fazer tudo no servidor e esse tipo de coisa às vezes é uma porcaria porque depois você tem que copiar
‫suas coisas e isso simplesmente não é ótimo.
‫Você tem tudo o resto localmente, tem seu editor de código, talvez você esteja usando código Visual
‫Studio e tem seu código fonte para esta classe e você tem coisas aqui, certo?
‫Portanto, você idealmente quer fazer todo esse trabalho em sua máquina local.
‫O Docker resolveu isso quando saiu pela primeira vez, em 2013.
‫A única maneira de fazermos isso era através de uma porta TCP, que não tem autenticação incorporada
‫e, por padrão, não fornece criptografia para a conexão.
‫Portanto, era geralmente considerada uma má maneira de se conectar ao Docker.
‫Era algo que você só queria fazer em redes seguras, e especialmente porque não foi autenticado.
‫Tecnicamente, poderia permitir o acesso remoto à raiz de um servidor se você simplesmente se conectasse de qualquer lugar
‫que tivesse acesso a essa porta, isso é uma má idéia.
‫Então Docker então adicionou esta nova característica incorporada que podemos simplesmente fazer uma conexão SSH transparente desde
‫que você possa SSH para aquele servidor e ter a autenticação ou um certificado, de preferência para SSH naquele servidor.
‫Você pode fazer isso e não precisa saltar através de arcos ou expor qualquer porto adicional.
‫Então, é isso que vamos fazer.
‫Portanto, este passo aqui é simplesmente obter o cliente de linha de comando Docker em qualquer sistema do qual você
‫esteja trabalhando e pode ser em Windows, Mac, Linux, Raspberry, PIs, o que quer que seja.
‫Basta obter o cliente da linha de comando se você estiver em um Mac.
‫Surpreendentemente o instalador de cerveja, que se você não sabe sobre a cerveja, está faltando
‫o melhor instalador para Mac e Brew installer Docker não instala realmente o motor Docker completo ou Docker desktop.
‫Ele só instala o cliente porque eles são.
‫Não é um motor Docker para Mac.
‫Os caroços Mac não suportam contêineres, então a instalação surpreendentemente só instala uma linha de comando, que neste caso
‫é o que nós queremos.
‫Se sua máquina local fosse Linux, você poderia usar o pacote de instalação Linux da documentação Dockers
‫e então, uma vez que você tenha esse pacote configurado como um repositório, você poderá então instalar o pacote Docker CCI
‫a partir desse repositório.
‫E por último, se você estiver no Windows, talvez já tenha ouvido falar do Chocolaty.
‫Esse é um dos gerentes de pacotes para Windows nos dias de hoje.
‫E você poderia fazer uma instalação de chocolate para instalar apenas o cliente da linha de comando.
‫Mas a Docker também tem tudo isso explicado em sua documentação, onde eles dizem como você pode obter as
‫bibliotecas clientes para seu sistema operacional e apenas a biblioteca cliente.
‫Certo.
‫O momento da verdade.
‫Você instalou o motor Docker em um servidor Linux.
‫Independentemente do que você vai usar, seja apenas para praticar ou para produção
‫real, você tem o Docker no servidor, agora você tem o cliente na Southern, sua máquina local.
‫Devo lembrar que tudo o que acabo de lhe dizer sobre a instalação do cliente, se você já tem o
‫Docker desktop instalado, não precisa fazer isso.
‫O desktop Docker vem com o cliente, mas podemos dizer ao cliente onde apontar onde falar com o motor do
‫servidor e é isso que vamos fazer agora.
‫Então imagine que eu possa dizer em um servidor com algo como este comando aqui em cima, rota ssh em um endereço IP ou um
‫hostname.
‫E digamos que eu tenho um certificado SSH.
‫Então, tudo isso supõe que você entende o básico do SSH, que você sabe como obter um certificado em um servidor para
‫que você possa fazer o login remotamente.
‫Há toneladas de tutoriais por aí sobre isso e esse conhecimento é assumido.
‫Novamente, o conhecimento básico do Linux é assumido antes de se envolver com a Docker.
‫Portanto, assumindo que podemos fazer isso, se eu tiver esse acesso, tudo o que eu precisaria fazer era criar uma variável
‫de ambiente.
‫A variável de ambiente de host do Docker diz à linha de comando do Docker com qual servidor falar
‫por padrão.
‫Se você simplesmente instalar o Docker em algo e começar a usar a linha de comando, ele assume o soquete
‫local ou o host local.
‫E por isso não tem sequer esta variável ambiental.
‫E por padrão, se estiver em branco, esta variável de ambiente, mesmo que Docker tente
‫procurá-la e não encontre uma, dirá, ok, você deve assumir que eu preciso falar com o anfitrião
‫local e ele fará isso muito bem.
‫Mas se mudarmos isso adicionando um host de doca de exportação é igual à barra de cólon ssh tal como você
‫usaria na URL https.
‫Portanto, se substituirmos isso pelo nome de usuário do ssh colon no nome da máquina, então eu posso pular para a doca apenas digitando os
‫comandos normais da doca.
‫Então note que eu digito uma versão de doca aqui, mas não tenho o Docker rodando na minha máquina local.
‫Eu só tenho esse cliente Docker e ele já é SSH diretamente pela internet para esta remota nuvem que acabei de configurar
‫há momentos e ele retorna a versão do servidor, bem como a versão do cliente.
‫Se você começasse a bisbilhotar, você realmente veria que eu estou em Darwin, que é Mac
‫OS para meu cliente e se rolarmos o servidor mostraria Linux porque é onde o servidor está
‫rodando o motor e é isso.
‫Isso é tudo o que você precisa fazer.
‫Se você quiser desestabilizar a variável ambiente do Docker, então sua linha de comando do Docker voltaria para sua máquina
‫local, assumindo que o motor estava funcionando localmente e que você pode alternar entre as
‫duas variáveis.
‫Na verdade, você poderia ter um monte de servidores diferentes e apenas mudar a variável de ambiente em
‫cada shell que você está usando para dizer com qual servidor falar.
‫Há um comando de contexto Docker que também pode fazer isso.
‫Ainda não vamos falar sobre isso.
‫Isso é mais avançado para mais tarde no curso, mas tecnicamente há um contexto de comando embutido
‫chamado Docker que permite salvar essas configurações e gerenciar uma lista de diferentes motores com os quais você
‫quer falar.
‫Mas este é ótimo para começar, e o último passo aqui é clonar seu repositório para este curso localmente, aquele
‫que mencionou algumas palestras nas palestras escritas onde há o reporte do curso que você baixa,
‫você quer colocar isso em sua máquina local junto com seu editor de código e tudo
‫mais e o cliente Docker.
‫A única coisa que vai estar no servidor é o motor que instalamos e não vamos precisar entrar
‫nele constantemente, porque todos os comandos do Docker que rodamos localmente apenas serão executados contra aquele
‫servidor remoto.
‫Aquele servidor remoto.
‫A propósito, basta lembrar que sempre que eu estiver digitando um host local em meu navegador para testar coisas no Docker, como
‫talvez um website ou algo que estamos rodando no Docker, você não vai digitar um host local, você
‫vai digitar o nome do host do servidor ou endereço IP no qual você instalou o Docker.
‫Essa é a máquina que está rodando o motor, rodando seus recipientes, e que você precisará digitar
‫em seu navegador.
‫Ou se você estiver executando qualquer outro comando local, como o enrolar ou o ping, você vai precisar fazer
‫isso com aquele IP do servidor E é isso.
‫Agora você tem um motor rodando em um servidor Linux em algum lugar do mundo.
‫Você está funcionando em seu sistema local com seu código e seu repo e tudo mais, e você está pronto
‫para começar.