10
Dockerfiles

Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Dockerfiles

Page 2: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Introdução ao DockerFile!

Bom, o que são DockerFiles? DockerFile é simplesmente um arquivo de script que usa a sintaxe do Docker junto com Shell Script.Agora sim, podemos criar nossas próprias imagens. Vamos poder escolher o SO base, instalar aplicações como apache, mongoDB, php, java, atualizar elas e outras infinitas possibilidades.

Page 3: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Criando nosso primeiro DockerFile

Bom, para começarmos. Vamos criar um caminho de pastas assim: DockerFiles/DockerHelloWorld/DockerFileCopie o comando abaixo e execute-o:mkdir -p ~/DockerFiles/DockerHelloWorld

&& cd ~/DockerFiles/DockerHelloWorld&& touch Dockerfile

Page 4: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Um pouco sobre o Dockerfile

Para criarmos um Dockerfile precisamos criar uma pasta para ele. Esta pasta deve conter apenas arquivos referentes ao Dockerfile. Pois tudo que estiver dentro desta pasta será inserido dentro do build, quando transformarmos esse Dockerfile em um Docker Image.Logo seguindo nosso exemplo criamos uma Pasta DockerHelloWorld que conterá a imagem Dockerfile (convenção do Docker), que irá imprimir na tela um Hello World!

Page 5: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Editando o Dockerfile

Bom, vamos adicionar uma imagem base do SO Ubuntu 15.04 dar update nela e escrever na tela o bendito Hello World! Digite:FROM ubuntu:15.04 #Ubuntu:15.04 é uma imagem do ubuntu no Docker HubMAINTAINER João Da Silva <[email protected]> #Responsável pela imagemRUN apt-get update #Executa o comando apt-get updateCMD [“echo”, “Hello World!”] # Executa o comando echo com a frase

Page 6: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Build da imagem

Bom agora que modificamos o nosso Dockerfile…Execute o comando:$ docker build -t [nome_da_nova_image]:[tag_ou_versao] ~/DockerFiles/DockerHelloWorld/Onde -t indica que queremos inserir um nome e/ou uma tag à imagem.Já que no último comando de criação do Dockerfile executamos o comando cd. Podemos apenas colocar um ponto no lugar de ~/DockerFiles/DockerHelloWorld/, deduzindo que já estamos na pasta onde o arquivo Dockerfile se encontra.

Page 7: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Container da nossa nova imagem!

Bom, agora que temos a imagem criada… Nada mais justo que executar ela!$ docker run helloworld:0.1E Voilà!Hello World!

Page 8: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Como funciona o Build

O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker Daemon, e nele irá ser criada a nova imagem.No exemplo estamos com o Docker Daemon local. Mas podemos configurar nosso Docker CLI para que utilize um Daemon remoto.Cada step do Build roda um novo container, cria uma nova camada de imagem caso for uma instrução RUN ou CMD, dá um commit e para o container. Dando continuidade às outras imagens.Acaba o Build e temos uma nova imagem que estará pronta para ser executada

Page 9: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

Referências e traduções

• Docker Deep Dive by Nigel Poulton (PluralSight)

Page 10: Dockerfiles - DBServer...$ docker run helloworld:0.1 E Voilà! Hello World! Como funciona o Build O contexto do build da imagem como nas primeiras linhas diz, é enviado para o Docker

© Copyright DBServer Assessoria em Sistemas de Informação – Todos os direitos reservados