Avançando com DockerFile e Docker-Compose Öffentlich

Avançando com DockerFile e Docker-Compose

Thiago Figueiredo
Kurs von Thiago Figueiredo, aktualisiert more than 1 year ago Beitragende

Beschreibung

Estudo sobre DockerFile e Docker-Compose

Modulinformationen

Beschreibung

Introdução sobre o curso
Entendo um pouco do Dockerfile e docker-compose e sua documentação de referência. Dockerfile: https://docs.docker.com/engine/reference/builder/ docker-compose: https://docs.docker.com/compose/
Weniger sehen

Beschreibung

Sintaxe do Dockerfile
Keine Merkmale angegeben
O Dockerfile não tem extensão. Possui o formato: INSTRUCTION arguments Começa com a instrução FROM Não é case-sensitive, deve começar com todas as letras maiúsculas. FROM >> indica a partir de qual imagem começar, ou seja, imagem base, geralmente pré-configurada e a mais leve e minimalista possível, parar se ter o máximo de performance. FROM arguments >> nome da imagem exemplo: FROM node:alpine
Weniger sehen

Beschreibung

Melhores práticas ao se trabalhar com a instrução RUN
Keine Merkmale angegeben
Instrução utilizada para executar comandos nas camadas de construção da imagem. São executados quaisquer comandos Shel ou CMD. Deve sempre tentar suprimir a iteração com o usuário. Sempre tentar utilizar o menor número possível de instruções RUN. Use concatenação de instrução. Exemplo:    RUN apt-get update    RUN apt-get update && apt-get install git -y    RUN apt-get update && apt-get install git vim node -y   Versões de imagem 'alpine', geralmente não vem com o 'bash' instalado, devendo seguir a seguinte linha de instrução abaixo: Não se faz necessário passar o parametro '-y', pois será executado por padrão. Exemplo:    RUN apk add --no-cache gcc musl-dev linux-headers
Weniger sehen

Beschreibung

Trabalhando com Workdir
Keine Merkmale angegeben
Instrução que determina qual o seu diretório de trabalho. Significa que qualquer execução ou comando de script que precisar ser realizado na imagem, será executado a partir desse diretório de trabalho. Exemplo: WORKDIR 'caminho'    WORKDIR /code
Weniger sehen

Beschreibung

Instruções de copias de arquivos
Keine Merkmale angegeben
COPY: Permite copiar arquivos de um local específico para a nossa imagem do Docker. Copia tanto arquivos quanto diretórios. Copia todos os arquivos a partir do contexto atual, ou seja, do local do Dockerfile (diretório pai). Em caso de se ter vários subdiretórios, os mesmos serão copiados. O '.' significa que é o diretório atual. Não copia diretórios que estejam fora do diretório que se encontra o Dockerfile. Exemplo: COPY 'local de origem' 'local de destino'    COPY ./origem destino   ADD: Permite copiar arquivos de um local específico para a nossa imagem do Docker. Suporta cópia de um arquivo zipado (.tar .gz .zip) para o destino e faz a descompressão automaticamente. Suporta cópia de arquivo vindo de uma URL. Não é o comando mais recomendando para se fazer cópia. Exemplo: ADD 'local de origem' 'local de destino'    ADD ./origem /destino
Weniger sehen

Beschreibung

Trabalhando com variáveis de ambiente
Keine Merkmale angegeben
Cria variáveis de ambiente na para  imagem do Docker. Exemplo: ENV 'chave' 'valor'    ENV nome seunome Exemplo: 'chave'='valor' -> pode-se definir várias variáveis de uma única vez    ENV sobrenome=seusobrenome idade=suaidade
Weniger sehen

Beschreibung

Trabalhando com ENTRYPOINT e CMD
Keine Merkmale angegeben
Usados para indicar como quer executar a imagem. Podem ser utilizdos juntos. A recomendação é semrpe utilziar a forma 'exec' da instrução.   ENTRYPOINT permite configurar um executável para o seu container. Geralmente é usado em cenários onde se deseja que o container se comporte exclusivamente como se o execuável estivesse encapsulado. Não se deseja que o suuário substituia o padrão do executável. Exemplo: ENTRYPOINT 'comando' >> formato shell || CMD ["executavel", "parametro"] >> formato exec    ENTRYPOINT ping localhost    ENTRYPOINT ["ping", "localhost"]   CMD provê um padrão para executar o container. É recomando utilizar quando quer dar uma flexibildiade para o usuário, ou seja, o usuário poder indicar quel comando quer executar quando rodar o container. Exemplo: CMD 'comando' >> formato shell || CMD ["executavel", "parametro"] >> formato exec    CMD ping localhost    CMD ["ping", "localhost"]
Weniger sehen

Beschreibung

Trabalhando com EXPOSE e USER
Por padrão, todo container quando executa as aplicações, ele executa com o usuário root.   EXPOSE informa ao Docker, para que o container escutar uma porta de rede específica As configurações serão sobrescritas, quando utilizada a opção '-p' ao levantar um container com essa imagem. Podem ser liberadas porta TCP ou UDP. Exemplo: EXPOSE 'porta'    EXPOSE 80    EXPOSE 80/udp   USE muda o contexto de usuário, de um atual para um específico. Indicado para aumentar a segurança do ambiente. Exemplo: USE 'usuário'    USE myuser
Weniger sehen

Beschreibung

ntrodução ao Docker-Compose
Keine Merkmale angegeben
Executa de maniera declarativa, como executar uma ou várias imagens. Concetrar em um único arquivo, todo o funcionamento do ambiente Docker. O arquivo deve ter o seguinte nome: docker-compose.yml. Esse arquivos deve seguir um padrão de identação de espaçamento entre as instruções de 2 espaços aninhados. Sintaxe:     version: "3" //documentação de cada versão que depende da versão do docker instalada    services: //configurações dos serviços a serem executados       web: //nome do serviço          image: imagemteste //da qual se deseja trabalhar que pode ser local ou do dockerhub          ports: //define as portas que essa aplicação irá ouvir             - 8080:8080 //porta do host:porta da imagem        redis:           image: redis:latest
Weniger sehen

Beschreibung

Trabalhando com build no Docker-Compose
Keine Merkmale angegeben
Diretiva de 'build'. Exemplo: build: 'diretório onde estará o arquivo para buildar: Dockerfile'    build: .   Pra forçar o build na execução do coker-compose:    # docker-compose up -d --build
Weniger sehen

Beschreibung

Trabalhando com CMD e ENTRYPOINT no compose
Keine Merkmale angegeben
Sobrescreve comandos na execução do container. Exemplo:    command: ["ping", "localhost"]
Weniger sehen

Beschreibung

Trabalhando com variáveis de ambiente no Docker-Compose
Keine Merkmale angegeben
Utiliza-se basicamente, o mesmo processo do Dockerfile. Exemplo:    environment:        ENV_01: valor      environment:        - ENV_01=valor   Para listar as variáveis de ambiente do cotainer:    # docker exec 'id_container' printenv
Weniger sehen

Beschreibung

Depends_on
Keine Merkmale angegeben
Propriedade que está paneas disponível para quem usa o docker-compose, que expressa uma dependência entre serviços. No processo do build, ele primeiro cria o serviço do qual se depende primeiro. Inicializa os containers de uma maneira ordenada. Pode-se trablhar com várias dependências ao mesmo tempo onde uma pode depender de várias outras também. Exemplo:    depends_on:       - 'nome do serviço'
Weniger sehen

Beschreibung

Trabalhando com redes no docker-compose
Keine Merkmale angegeben
Toda vez que se criar uma rede, deve-se informar no arquivo docker-compose, que a mesma tem que ser criada. Um serviço pode trabblhar em várias redes ao mesmo tempo. Um rede, estará disponível para vários serviços que queiram fazer parte dela ao mesmo tempo. Exemplo:    networks:        - 'nome da rede que este serviço pertence'    networks:       'nome da rede que este serviço pertence':
Weniger sehen

Beschreibung

Trabalhando com volumes
Keine Merkmale angegeben
Da mesma maneira que na criação de redes, na criação de um volume, deve-se declarar os mesmo no final do arquivo para que os mesmos sejam criados. Exemplo:    volumes:       - 'pasta de origem':'pasta de destino'      volumes:       'nome do colume':
Weniger sehen
Zusammenfassung anzeigen Zusammenfassung ausblenden