Curso Docker para Desenvolvedores (com Docker Swarm e Kubernetes) criado pelo Matheus Battisti, na plataforma Udemy. 2023
- Instalação do Docker Desktop.
- Verificar versão instalada:
docker version
- Para rodar containers utilize:
docker run
- Executar uma imagem em um container:
docker run <imagem>
- Verificar containers criado:
docker ps
- Parar um container:
docker stop <id ou nome>
- Remover um container:
docker -rm <id> -f (force)
- Iniciar um container:
docker start <id ou nome>
- Definir nome para um container:
docker run -d -p 80:80 --name <nome_desejado> nginx (apenas exemplo)
- Acessar logs de um container:
docker logs <id>
- Fazer o build de uma imagem:
docker build <diretório da imagem>
- Executar uma imagem:
docker run <imagem>
- Verificar opções diponíveis de comandos:
docker run --help
- Nomeando imagens:
docker tag <name>
docker tag <name>:<tag>
- Removendo imagens:
docker rmi <imagem> -f (force)
- Enviando imagens para o Hub:
docker push <imagem>
- Criar volumes nomeados:
docker run -v nomedovolume:/data
- Verificar volumes nomeados criados:
docker volume ls
- Bind mount:
docker run /dir/data:/data
- Inspecionar Volumes:
docker volume inspect <nome>
- Removendo Volumes:
docker volume rm <nome>
- Removendo Volumes em massa (prune), serve também para imagens e containers:
docker volume prune
- Volume com permissão apenas de leitura:
docker run -v volume:/data:ro
- Listando networks:
docker network ls
- Criando networks:
docker network create <nome>
- Removendo networks:
docker network rm <nome>
- networks externos:
docker run -d -p 5000:5000 --name <nomecontainer> --rm <name>
- networks maquina host:
docker run -d -p 5000:5000 --name <nomecontainer> --rm <namehost>
- conexao entre containers:
docker network create <nome>
docker run -d -p 3306:3306 --name <nomedocontainer> --rm --network <nomedared> -e <variaveldeambiente> = True <nomedaimagemderede>
- conexao entre um container e uma rede:
docker network connect <rede> <container>
- Desconectar um container da rede:
docker network disconnect <rede> <container>
- Inspecionando networks:
docker network inspect <nomedarede>
- Rodando o Compose:
docker-compose up
- Rodando o Compose em background:
docker-compose up -d
- Parando o Compose:
docker-compose down
- Verificando serviços do Compose:
docker-compose ps
- Inicializando o Swarm
docker swarm init
- Listando todos os Nodes
docker node ls
- Adicionando máquinas no Swarm
docker swarm join --token <TOKEN><IP>:<PORTA>
- Subindo serviço no Swarm
docker service create --name <nome> <imagem>
- Verificando serviços rodando no Swarm
docker service ls
- Removendo serviços
docker service rm <nome>
- Replicando serviços
docker service create --name <nome> --replicas <NUMERO> </NUMERO><imagem>
- Deixar o Swarm em um Node
docker swarm leave
- Removendo um Node
docker node rm <ID>
- Inspecionando serviços
docker service inspect <ID>
- Verificar quais containers estão rodando
docker service ps <ID>
- Atualizando um imagem no Swarm
docker service update --image <imagem> <SERVICO>
- Criando redes para serviços do Swarm
docker network create --network <REDE>
- Conectando serviços a uma rede já existente
docker service update --network <REDE> <nome>
- Inicializando o Minikube
minikube start --driver=<DRIVER>
- Parando o Minikube
minikube stop --driver=<DRIVER>
- Acessando o Dashboard
minikube dashboard OU minikube dashboard --url
- Criando Deployment
kubectl create deployment <NOME> --image=<IMAGE>
- Verificando Deployment
kubectl get deployments ou kubectl describe deployments
- Criando um service
kubectl expose deployment <NOME> --type=<TIPO> --port=<PORT>
- Gerando um IP para o Service
minikube service <NOME>
- Detalhes dos Services
kubectl get services
- Replicando aplicação
kubectl scale deployment/<NOME> --replicas=<NUMERO>
- Verificando número de réplicas
kubectl get rs
- Diminuindo o número de réplicas
kubectl scale deployment/<NOME> --replicas=<NUMERO_MENOR>
- Atualizando a imagem do projeto
kubectl set image deployment/<NOME> <NOME_CONTAINER>=<NOVA_IMAGEM>
- Desfazer alterações de Projeto
kubectl rollout status deployment/<NOME>
- Deletando Services
minikube delete service <NOME>
- Deletando Deployments
minikube delete deployment <NOME>
- Parando o deployment
minikube delete -f <ARQUIVO>
- Iniciando o Serviço
minikube apply -f <ARQUIVO>
minikube service <NOME>
- Parando o Serviço
minikube delete -f <ARQUIVO>