Tabela de conteúdos
DOCKER
Iniciar um Container
Utilize 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: <variavel>
devem ser substituídos por nomes requeridos.
Executar containers
docker run <nomeimage>
Executar containers e iniciar bash
docker run -it <nomeimage> bash
Executar containers em segundo plano
docker run -d <nomeimage>
Lista de imagens
docker images
Verifica composição de imagens
docker history <imagename>
Lista containers em execução
docker ps
Lista containers
docker ps -a
Iniciar containers criado
docker start <containerid>
Parar containers criado
docker stop <containerid>
Parar forçado
docker stop -t=0 <containerid>
Pausar containers
docker pause <containerid>
Despausar containers
docker unpause <containerid>
Executar/Abrir Prompt bash container
docker exec -it <containerid> bash
Excluir/Deletar Containers
docker rm <containerid>
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 <imagename>
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 <containerid>
Mapear portas containers - utilizando portas específicas do host
docker run -d -p 8080:8080 <containerid>
Listar portas host
docker port <containerid>
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 <crieseunometag>/<crienomeimagem>:<x.x> .
Criar Copia de uma imagem docker - Mudar TAG
docker tag <nometag/nomeimage:1.0> <novatag/nomeimage:1.0>
Publicar sua imagem no DOCKERHUB
docker push <nome_da_sua_tag_no_docker_hub/nomeimage:1.0> <novatag/nomeimage:1.0>
Percistência de dados - DIRETORIO LOCALHOST
docker run it -v <path/local/host>:</path/image> imagename bash
SEMANTICA:
docker run it --mount type=bind,source=<path/local/host>,target=</path/image> 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 <nome-volume>
Descrição:
O docker cria o volume no host em: /var/lib/docker/volumes/
Percistência de dados - VOLUME
docker run -it -v <meu-volume>:</path/container> nomeimage bash
ou
docker run it --mount source=<meu-volume>,target=</path/image> 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=<path> 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 <imagename>