Demo #31 - Aula sobre como criar a sua própria Imagem no Docker !
Índice:
Uma imagem do Docker é o modelo dos contêineres do Docker que contém o aplicativo e tudo o que você precisa para executar o aplicativo. Um contêiner é uma instância de tempo de execução de uma imagem.
Neste tutorial, explicaremos o que é o Dockerfile, como criar um e como criar uma imagem do Docker com o Dockerfile.
O que é o Dockerfile
Um Dockerfile é um arquivo de texto que contém todos os comandos que um usuário pode executar na linha de comando para criar uma imagem. Inclui todas as instruções necessárias pelo Docker para criar a imagem.
As imagens do Docker são compostas por uma série de camadas do sistema de arquivos que representam instruções no Dockerfile da imagem que compõe um aplicativo de software executável.
O arquivo do Docker tem o seguinte formato:
# Comment INSTRUCTION arguments
INSTRUCTION
não
INSTRUCTION
maiúsculas de minúsculas, mas a convenção é usar MAIÚSCULAS para seus nomes.
Abaixo está a lista com uma breve descrição de algumas das instruções mais usadas do Dockerfile:
- ARG - Esta instrução permite definir variáveis que podem ser passadas no momento da construção. Você também pode definir um valor padrão. FROM - A imagem base para criar uma nova imagem. Esta instrução deve ser a primeira instrução sem comentários no Dockerfile. A única exceção desta regra é quando você deseja usar uma variável no argumento
FROM. Nesse caso,FROMpode ser precedido por uma ou mais instruçõesARG. LABEL - Usado para adicionar metadados a uma imagem, como descrição, versão, autor..etc. Você pode especificar mais de umLABELe cada instruçãoLABELé um par de valores-chave. EXECUTAR - Os comandos especificados nesta instrução serão executados durante o processo de construção. Cada instruçãoRUNcria uma nova camada em cima da imagem atual. ADICIONAR - Usado para copiar arquivos e diretórios da fonte especificada para o destino especificado na imagem do Docker. A fonte pode ser arquivos ou diretórios locais ou uma URL. Se a origem for um arquivo tar local, será descompactado automaticamente na imagem do Docker. COPIAR - Semelhante aoADDmas a fonte pode ser apenas um arquivo ou diretório local. ENV - Esta instrução permite definir uma variável de ambiente. CMD - Usado para especificar um comando que será executado quando você executar um contêiner. Você pode usar apenas uma instruçãoCMDno seu Dockerfile. ENTRYPOINT - Semelhante aoCMD, esta instrução define qual comando será executado ao executar um contêiner. WORKDIR - Esta diretiva define o diretório de trabalho atual para as instruçõesRUN,CMD,ENTRYPOINT,COPYeADD. USUÁRIO - Defina o nome de usuário ou oUIDa ser usado ao executar qualquer instruçãoRUN,CMD,ENTRYPOINT,COPYeADDseguir. VOLUME - Permite montar um diretório de máquinas host no contêiner. EXPOSE - Usado para especificar a porta na qual o contêiner escuta em tempo de execução.
Para impedir que arquivos e diretórios sejam adicionados à imagem, crie um arquivo
.dockerignore
no diretório de contexto. A sintaxe do
.dockerignore
é semelhante à do arquivo
.gitignore
do Git.
Para obter uma referência completa e uma explicação detalhada das instruções do Dockerfile, consulte a página de referência oficial do Dockerfile.
Criar um arquivo Docker
O cenário mais comum ao criar imagens do Docker é extrair uma imagem existente de um registro (geralmente no Docker Hub) e especificar as alterações que você deseja fazer na imagem base. A imagem base mais usada ao criar imagens do Docker é Alpine, pois é pequena e otimizada para ser executada na RAM.
Neste exemplo, criaremos uma imagem do Docker para o servidor Redis. Usaremos o ubuntu 18.04 mais recente como imagem de base.
Primeiro, crie um diretório que conterá o Dockerfile e todos os arquivos necessários:
mkdir ~/redis_docker
Navegue para o diretório e crie o seguinte Dockerfile:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
Vamos explicar o significado de cada uma das linhas no Dockerfile:
- Na linha
1, estamos definindo a imagem base. A instruçãoRUNque inicia na linha3atualizará o índice apt, instalará o pacote "redis-server" e limpará o cache do apt. Os comandos usados nas instruções são os mesmos que você usaria para instalar o redis no servidorEXPOSEinstruçãoEXPOSEdefine a porta na qual o servidor redis escuta.Na última linha, estamos usando a instruçãoCMDpara definir o comando padrão isso será executado quando o contêiner for executado.
Salve o arquivo e feche o editor.
Construindo a imagem
O próximo passo é construir a imagem. Para fazer isso, execute o seguinte comando no diretório em que o Dockerfile está localizado:
docker build -t linuxize/redis.
A opção
-t
especifica o nome da imagem e, opcionalmente, um nome de usuário e marca no formato 'nome de usuário / nome da imagem: marca'.
A saída do processo de construção será mais ou menos assim:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
Quando o processo de compilação for concluído, a nova imagem será listada na lista de imagens:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
Executando um contêiner
Agora que a imagem foi criada, você executa um contêiner executando:
docker run -d -p 6379:6379 --name redis linuxize/redis
As opções
-d
dizem ao Docker para executar o contêiner no modo desanexado, a opção
-p 6379:6379
publicará a porta 6379 na máquina host e a opção
--name redis
especifica o nome do contêiner. O último argumento
linuxize/redis
é o nome da imagem, usada para executar o contêiner.
Quando o contêiner iniciar, use o seguinte comando para listar todos os contêineres em execução:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
Para verificar se tudo funciona como deveria, use o
redis-cli
para conectar-se ao contêiner do docker:
redis-cli ping
O servidor redis deve responder com
PONG
.
Conclusão
Este tutorial abordou apenas o básico do uso de Dockerfiles para criar imagens. Para saber mais sobre como escrever Dockerfiles e as práticas recomendadas, consulte Práticas recomendadas para escrever Dockerfiles.
As ferramentas do DirectX 11 incluem um conjunto de APIs (interfaces de programação de aplicativos) para imagens realistas e melhores som ao jogar jogos ou assistir filmes. Por exemplo, os desenvolvedores de jogos poderão criar imagens mais suaves e realistas em um jogo por meio de uma melhor modelagem tridimensional.
A maioria das placas gráficas discretas suporta as ferramentas DirectX 10 e 10.1 existentes, integradas no Windows Vista. > As ferramentas DirectX 11 também são projetadas para ajudar o Windows 7 a reconhecer sistemas multicore para melhorar o desempenho de gráficos e outras aplicações. Um recurso chamado "Compute Shader" aproveita os recursos de processamento paralelo de GPUs (unidades de processamento gráfico) para melhorar o jogo em PCs. Esses aprimoramentos podem tornar os jogos mais realist
Como criar imagens 3D com o Paint 3D App do Windows 10
O novo aplicativo Paint 3D para Windows 10 moderniza o 30 anos de idade ferramenta Microsoft Pait. Agora, novatos e iniciantes também podem facilmente criar imagens em 3D no Windows 10.
Como salvar e marcar várias imagens na Pesquisa de imagens do Google
Agora, a Pesquisa de imagens do Google oferece um recurso Salvar e Marcar que permite salvar suas imagens favoritas e organizá-las em um único lugar como coleções.







