====== DOCKER ====== ===== Iniciar um Container ===== Utilize [[https://hub.docker.com/search?q=| DockerHub]] para encontra uma imagem. Alguns de maior uso: * ''docker pull ubuntu'' * ''docker pull debian'' * ''docker pull alpine'' Verificar nomes de imagens em Docker HUB ===== Comandos ===== Observação: '''' devem ser substituídos por nomes requeridos. ==== Executar containers==== docker run ==== Executar containers e iniciar bash==== docker run -it bash === Executar containers em segundo plano === docker run -d ==== Lista de imagens==== docker images ==== Verifica composição de imagens==== docker history ==== Lista containers em execução==== docker ps ==== Lista containers ==== docker ps -a ==== Iniciar containers criado ==== docker start ==== Parar containers criado ==== docker stop ===Parar forçado=== docker stop -t=0 ==== Pausar containers==== docker pause === Despausar containers=== docker unpause ==== Executar/Abrir Prompt bash container ==== docker exec -it bash ==== Excluir/Deletar Containers==== docker rm == Excluir/Deletar todos Containers== docker container rm $(docker container ls -aq) * ''-a'': pega todos os containers * ''-q'': retorna apenas os ids ==== Excluir/Deletar Imagens==== docker rmi == Excluir/Deletar todas Imagens== docker rmi $(docker image ls -aq) * ''-a'': pega todos os containers * ''-q'': retorna apenas os ids == Excluir/Deletar todas Imagens FORCE== docker rmi $(docker image ls -aq) --force ==== Mapear portas containers - utilizando portas aleatórias do host ==== docker run -d -P ==== Mapear portas containers - utilizando portas específicas do host ==== docker run -d -p 8080:8080 ==== Listar portas host ==== docker port ==== Criação de Imagem - Dockerfile ==== FROM node:14 WORKDIR /app-node ARG $PORT_BUILD=6000 ENV PORT=$PORT_BUILD EXPOSE $PORT_BUILD COPY . . RUN npm install ENTRY POINT npm start //Descrição:// - Utiliza a imagem apartir do node 14 como base - Cria pasta app-node dentro do container a ser criado - Especifica uma porta ao criar o container 6000 ARG (variavel durante construção da imagem) e ENV variável que existe dentro do container em execução - Explicita a porta que será usado na nossa aplicação (expose) - Copia os arquivos da pasta atual para pasta app-node dentro do container - npm install - npm start ''Executar na mesma pasta:'' docker build -t /: . ==== Criar Copia de uma imagem docker - Mudar TAG ==== docker tag ==== Publicar sua imagem no DOCKERHUB ==== docker push ==== Percistência de dados - DIRETORIO LOCALHOST ==== docker run it -v : imagename bash SEMANTICA: docker run it --mount type=bind,source=,target= imagename bash Além disso, é importante lembrar que `bind mounts` dependem da estrutura de pastas do host, o que pode gerar problemas de portabilidade se você precisar mover seu container para outro ambiente. Já os volumes são gerenciados pelo Docker e podem ser compartilhados entre diferentes containers, além de serem mais fáceis de gerenciar e manter. ==== Listar volume ==== docker volume ls ==== Criar volume ==== docker volume create Descrição: O docker cria o volume no host em: ''/var/lib/docker/volumes/'' ==== Percistência de dados - VOLUME ==== docker run -it -v : nomeimage bash ou docker run it --mount source=,target= imagename bash Descrição: A diferença é que utilizando ''--mount'' **não precisa criar o volume**, caso não exista ele **criará automaticamente**. ==== Percistência temporária - tmpfs ==== docker run -it --tmpfs= nomeimage bash Descrição: Armazena os arquivos em memória ===== Configurações de Rede ===== docker network ls Verificar as configurações do container: docker inspect