https://docs.docker.com/get-started/docker_cheatsheet.pdf
https://labs.play-with-docker.com/
https://training.play-with-docker.com/
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
- Descomplicando o Docker
- Containers com Docker: Do desenvolvimento à produção
- Do zero ao Docker: Guia básico referencial de instalação, uso e segurança no uso de containers em Docker para iniciantes
- Docker: Up & Running: Shipping Reliable Containers in Production (English Edition / Advanced)
- Comandos básicos linux
- Sistemas operacionais
Documentação oficial do docker com todas as linhas de comandos seus argumentos e parâmetros https://docs.docker.com/engine/reference/commandline/docker/
Baixar uma imagem docker
$ docker pull <image name>
Procurar imagem no docker hub
$ docker search <image name>
Ver histórico de alterações de ima imagem
$ docker history <image name>
Enviar imagem para o docker hub
docker push <image name>
Listar containers
$ docker ps
$ docker ps --all
Lista imagens containers locais
$ docker images
$ docker images --all
Criar um container
$ docker create -ti ubuntu
Iniciar um container
$ docker start <container id>
Acessa um container recem criado
$ docker attach <container id>
Parando um container
$ docker stop <container id>
Restartando um container
$ docker restart <container id>
Pausar um container
$ docker pause <container id>
Despausar um container
$ docker unpause <container id>
Verificando uso de recursos dos containera
$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
bad1631b74d4 magical_black 0.00% 828KiB / 7.661GiB 0.01% 1.02kB / 0B 0B / 0B 1
Verificando logs do container
$ docker logs <container id>
$ docker logs -f <container id>
Acessando o bash do container iniciado
$ docker exec -ti <container id>
Removendo container
$ docker rm <container id>
Especificando tamanho de memória para container
$ docker run -ti -m 512M --name container_name ubuntu
Especificando tamanho de cpu para container
$ docker run --cpus=0.5 --name container_name apache
Atualizando tamanho da cpu e memória do container
$ docker update -m 256m --cpus=1 container_name
Ver detalhes do container
$ docker inspect <container id>
Removendo uma imagem do host local
$ docker rmi <image name>
$ docker rmi $(docker images -a -q) ## Remove todas as imagens
Parar todos os containers
$ docker stop $(docker ps -a -q)
Remover todos os containers
$ docker rm $(docker ps -a -q)
Listar volumes docker
$ docker volume ls
Criar um novo volume docker tmpfs
$ docker volume create my-volume-name
Iniciar um container com volume do tipo tmpfs
$ docker run -ti -v my-volume-name:/app ubuntu bash
Iniciar um container com volume do tipo bind
$ docker run -ti -v /home/username/myfolder:/app ubuntu bash
Primeiro Dockerfile
## File name is Dockerfile
FROM ubuntu
RUN /bin/echo "HELLO DOCKER"
Realizando build de uma imagem docker apartir do Dockerfile
$ docker build -t userDockerHub/ubuntu:MYTAG
Saiba mais sobre as tags na documentação oficial https://docs.docker.com/engine/reference/commandline/tag
Enviando imagem para dockerhub
$ docker push userDockerHub/ubuntu:MYTAG
ADD -- Copia novos arquivos, diretórios, arquivos TAR ou arquivos remotos e os adiciona ao filesystem do container.
CMD -- Executa um comando. Diferentemente do RUN, que executa o comando no momento em que está "buildando" a imagem, o CMD irá fazê-lo somente quando o container é iniciado.
LABEL -- Adiciona metadados à imagem, como versão, descrição e fabricante.
COPY -- Copia novos arquivos e diretórios e os adiciona ao filesystem do container.
ENTRYPOINT -- Permite que você configure um container para rodar um executável. Quando esse executável for finalizado, o container também será.
ENV -- Informa variáveis de ambiente ao container.
EXPOSE -- Informa qual porta o container estará ouvindo.
FROM -- Indica qual imagem será utilizada como base. Ela precisa ser a primeira linha do dockerfile.
MAINTAINER -- Autor da imagem.
RUN -- Executa qualquer comando em uma nova camada no topo da imagem e "commita" as alterações. Essas alterações você poderá utilizar nas próximas instruções de seu dockerfile.
USER -- Determina qual usuário será utilizado na imagem. Por default é o root.
VOLUME -- Permite a criação de um ponto de montagem no container.
WORKDIR -- Responsável por mudar do diretório "/" (raiz) para o especificado nele.