‫Os requisitos para esta palestra incluem conhecer os conceitos básicos sobre o que um
‫recipiente e uma imagem estão no Docker e entender
‫as camadas, ou pelo menos o básico das camadas. Conheça algumas coisas sobre Docker Hub.
‫Esta palestra será tudo sobre tags de imagem e como carregá-las no Docker Hub.
‫Na verdade, há muitas tags porque não são tão intuitivas quanto você
‫pode pensar quando começa a usá-las. Eles precisam realmente estar em um formato específico para
‫trabalhar com um registro, especificamente com Docker Hub. Então falo com você sobre o relacionamento entre
‫as tags atribuídas às suas imagens e as IDs dessas imagens.
‫Então vamos começar.
‫Primeiro, vamos falar sobre marcação. tag de imagem docker --help. As imagens não possuem um nome tecnicamente mesmo que
‫nos referimos a eles assim quando falamos casualmente.
‫Se fizermos uma
‫imagem docker, percebe que não há coluna de nome.
‫Além da identificação da imagem, que nenhum de nós vai se lembrar daquilo certo?
‫Temos que nos referir a eles por três diferentes informações.
‫Nesta tela para o comando ls da imagem, na verdade, só vemos dois deles. estamos vendo a tag.
‫Mais à esquerda,
‫estamos vendo o repositório, então O repositório é realmente composto pelo nome
‫do usuário ou a organização cortar o repositório.
‫Aqui, estamos lidando apenas com imagens oficiais do repositório, de
‫modo que só vamos ver o nome do repositório real.
‫Mencionamos anteriormente que as imagens especiais que são consideradas oficiais são as únicas que obtêm o
‫direito de se chamar apenas o nome do repositório, e não o nome real do repositório
‫de barras da organização.
‫Mas se nos dirigimos ao Docker Hub, e eu apenas faço uma pesquisa no mysql, descobriremos que na
‫verdade existe uma organização, não apenas o mysql oficial, que é apenas chamado de
‫mysql, mas a organização SQL tem um mysql-server, que parece ser bastante popular como, bem,
‫tem mais de um milhão de downloads. Parece que o que é aqui é que este é
‫realmente o mesmo servidor MySQL, mas é realmente criado pela equipe do MySQL na Oracle.
‫Se eu realmente quisesse baixá-lo, você notará aqui à
‫direita, eu tenho que fazer um docking pull mysql / mysql-server. Posso clicar no
‫botão de cópia e copiá-lo. você notará que o nome do repositório inclui o nome da organização.
‫Ele realmente baixará essa imagem única baseada em organização e se eu fizer uma imagem docker novamente,
‫Na minha conta no Docker Hub, sou conhecido como bretfisher. Você pode vê-lo da parte superior direita.
‫Então, se eu olhasse meu painel de controle e olhas minhas imagens que tenho
‫públicas, por exemplo, vamos ver o nodemongoapp.
‫Se você baixasse isso,
‫eu precisaria fazer docker pull bretfisher / nodemongoapp.
‫Agora que entendemos como o repositório é nomeado para o qual é a etiqueta?
‫A tag não é uma versão e não é um ramo, mas é muito parecido com as tags Git.
‫Então é um pouco um pouco de ambos.
‫É realmente apenas um ponteiro para um commit de imagem específica, e realmente poderia ser qualquer coisa, nesse repositório.
‫Se voltarmos ao Docker Hub por um minuto, e nós fomos para a imagem oficial do mysql, você verá na primeira página
‫que tem essas tags diferentes. O que eles estão tentando dizer aqui é que o 8. 0. 0
‫e 8. 0 e 8 são todas as tags para a mesma ID da imagem.
‫Se eu rolar para cima aqui e olhar para o botão de tags, eu recebo uma lista completa detalhada de todas as
‫várias etiquetas que eles deram ao mysql.
‫Então vamos ao Nginx, que é o que temos trabalhado muito.
‫Veremos aqui que não são apenas números, mas também são nomes.
‫É importante ressaltar que estes são realmente exatamente a mesma imagem e o
‫Docker é inteligente o suficiente para saber disso. Eu vou para a minha linha de comando e vejo que já tenho o nginx mais recente baixado.
‫Se eu olhei para a página da Web, vejo a marca mais recente aqui, mas também é chamado mainline.
‫Então, e se eu fiz um docking puxe nginx: mainline? O que isso está nos dizendo é que realmente já sabia que com base na
‫identificação da imagem, essa imagem já está no meu cache. Agora, se eu fizer uma imagem do
‫docker novamente, eu vejo dois nginx diferentes. Você notará que eles têm exatamente a mesma ID de imagem porque eles não são realmente armazenados
‫duas vezes no cache e, novamente, isso retorna a muitas economias. deles apontam para o mesmo.
‫Essas tags são apenas rótulos que apontam para uma identificação de imagem real e podemos ter
‫muitos
‫Então, como faço novos rótulos?
‫Bem, eu poderia fazer meu próprio Dockerfile e criar minha própria imagem personalizada, mas também
‫podemos redistribuir novamente as imagens do Docker existentes, então eu posso apenas fazer uma
‫tag de imagem docker nginx bretfisher / nginx. O formato deste comando é a imagem que eu vou dar uma nova
‫tag para primeiro e, em seguida, a nova tag que eu quero dar.
‫atualizar sua memória, mostra a SOURCE_IMAGE e uma tag opcional e, em seguida, a NEW_IMAGE uma tag opcional.
‫Se eu fiz
‫uma tag de imagem docker - sirva novamente, apenas para
‫Então, se você não especificar a tag, ele sempre será padrão para o mais recente. O último, na verdade, não significa sempre mais recente porque
‫eu tecnicamente poderia levar algum software antigo e marcá-lo mais tarde.
‫Não há nada de especial, mas é apenas o tipo de padrão. Na verdade, eu gostaria que eles
‫simplesmente chamassem isso de padrão e não mais recente.
‫oficiais, você pode confiar
‫que o mais recente é, geralmente, a versão mais recente do software que deseja usar.
‫Portanto, é um pouco confuso, mas geralmente no Docker Hub, especialmente quando você está usando imagens
‫Então, vamos fazer uma
‫imagem docker novamente. Observe o que aconteceu.
‫Eu adicionei uma nova tag a uma imagem existente que eu não fiz.
‫Ele mostra a mesma identificação de
‫imagem e agora é rotulado com meu nome de usuário e um novo repo que ainda não existe no Docker Hub.
‫Se nós fomos e olhei no
‫meu painel, eu não tenho nada chamado bretfisher / nginx.
‫Então, e se eu fiz um empurrão de imagem docker, semelhante a um Git push, bretfisher / nginx?
‫negado: o acesso solicitado ao recurso é negado.
‫Então, claramente tentou carregar o que acabei de criar, tentou carregar essa tag, mas me deu
‫acesso negado.
‫Isso porque eu na verdade não entrei.
‫Então, se você olhar para o docker - ajuda, você verá um comando de login e logout. Ainda não usamos esses. Então, o que isso realmente fez foi que isso foi escrito para um arquivo, que, por padrão, está no meu perfil sob o nome do gato. docker / config. json, e realmente armazenou uma chave de
‫Então, uma vez que você tenha sua própria conta grátis do Docker Hub, você pode realmente fazer login a partir do login do docker da linha de comando. autenticação que permitiria que minha CLI docker local acessasse o
‫Docker Hub como eu.
‫Este é um ponto importante sobre o qual aprenderemos mais adiante na produção é que, sempre que você fizer login com a CLI do Docker, por
‫padrão, ele irá
‫armazenar essa chave de autenticação para sua conta no perfil desse usuário.
‫Então, esteja ciente disso.
‫Se você estiver usando uma máquina na qual você não confia, quando terminar, digite o logout do docker.
‫Então, agora que estamos logados, vou acertar a seta para cima para tentar empurrar essa imagem novamente.
‫ESTÁ BEM.
‫Então parece que está feito.
‫Vamos ao Docker Hub e acerte a atualização. Lá
‫está, bretfisher / nginx. Mais uma vez, na verdade
‫não precisava criar isso do zero para carregá-lo.
‫Eu simplesmente simplesmente entreguei uma nova tag a uma imagem existente e, quando a coloquei, criou automaticamente um novo repo com base nessa
‫etiqueta.
‫Claro, eu poderia preencher todas as informações aqui, e você verá que foi inadimplente ao nome da
‫tag mais recente, porque eu não especificava uma. Então eu poderia realmente voltar e fazer a coisa
‫até a flecha até eu chegar na minha etiqueta e eu poderia realmente dar uma etiqueta diferente.
‫Vamos adicionar uma marca adicional à mesma imagem e eu vou chamar isso de teste. Se fizermos uma imagem
‫docker, verá que agora tenho três com
‫a mesma identificação de imagem.
‫Se eu fiz
‫uma imagem do docker, pressione bretfisher / nginx: teste, e desta vez eu testei o teste, observe como ele diz que camadas já existem.
‫Isso faz parte da nossa incrível taxa de poupança.
‫Quando estamos baixando e fazendo o upload de imagens, que já existem
‫camadas que existem, não vai incomodar voltar a carregá-las.
‫Se voltarmos e acertando a atualização, você verá que agora tenho outra etiqueta.
‫Mas é claro que, se
‫eu apenas fizesse uma imagem do docker, percebemos como nós vimos que é a mesma identificação de imagem e ambos os lados dessa conexão conhecem isso. Se eu quisesse que este fosse um repositório privado, porque isso é uma
‫característica suportada do Docker Hub, o que eu provavelmente gostaria de fazer é criar o repositório primeiro e, quando
‫eu criei, eu especifiquei que ele seria privado.
‫Então, quando eu empurrei para ele, o código nunca seria publicamente na internet.
‫Uau, há muito para imagens e suas tags.
‫Então, vamos fazer uma revisão rápida.
‫Como você pode ver, você pode gravar qualquer coisa sobre as imagens, mas eles precisam
‫estar em um formato específico para trabalhar com o Docker Hub. Você não pode simplesmente chamar algo do nginx
‫e depois carregá-lo porque não funcionará, a menos que tenha seu ID de conta ou identificação de organização na frente dele.
‫Então eu falei sobre como você pode realmente ter muitas tags para a mesma identificação
‫de imagem e apenas porque você re-tagar ou marcar de forma diferente uma imagem existente, ele realmente não altera essa ID da imagem.
‫Lembre-se de que a última tag é realmente apenas a tag padrão.
‫padrão, que as pessoas usam a tag mais recente como forma de
‫indicar a versão estável mais recente de sua imagem.
‫Não há nada inerentemente especial sobre isso, mas assumimos o Docker Hub, é praticamente um Mostrei-lhe como rapidamente fazer login e sair do Docker Hub da CLI. Lembre-se de que isso armazena uma identificação de sessão na sua configuração local
‫se você estiver em uma máquina Linux e você se certifica de que você
‫desconecte para remover isso se
‫você estiver em uma máquina Linux compartilhada ou um host, como um servidor. Então, apenas um lembrete, se você quiser criar uma imagem Docker Hub
‫privada, provavelmente deve criar
‫o repositório antes de enviá-lo.
‫