docker run
-it (iterativo - usa o terminal como novo) -d (detached - backgrount) -p 80:80 (porta em que estará na maquina, com porta do container) --name(nomear container) nome da imagem
v- nome_volume:diretorio (criar volume) * diretorio precisar ser compativel com WORKDIR OBS.*: usar a maquina como volume com bind mount -v diretorio que eu quero salvar:diretorio que é salvo no docker e ele ainda servirá para atualizar todo o projeto caso passe diretorio_projeto:WORKDIR_do_Dockerfile
--rm (apagar o container após execução) [nome_imagem]
docker build
###PARAMETRÔS -t name Endereço do Dockerfile
docker ps -a
docker images
docker volumes ls
docker network ls
docker network create [nome]
(driver default: bridge)
-d [driver]
OBS.* no network host geralmente é preciso criar no código Ex.: após criar a image e network docker run -d -p [3306]:3306 --name container_mysql_flask --network flasknetwork -e MYSQL_ALLOW_EMPTY_PASSWORD=True mysqlbridge
na conexão entre container nem é preciso externalizar portas
docker network connect [nome_network] [container(name OR id)]
docker network disconnect [nome_network] [container(name OR id)]
-e nome_variavel=valor quando for rodar o docker run pelo terminal
docker compose up
-d (detached - backgrount)
docker compose ps
docker swarm init
docker swarm join --token [TOKEN] [IP]:2377
docker swarm join-token manager
docker service create [IMAGE]
--name [ NAME ] --replicas [ QUANTIDADE ] -p [portas local : docker] --network [NOME DA REDE] usada para isolar certos container dentro da orquestração, e o driver de rede do swarm é o overlay
docker swarm leave
docker node rm [ID]
caso ainda eseja rodando um serviço basta usar o -f
docker service inspect [ID]
docker service ps [ID]
docker stack deploy -c docker-compose.yaml [NAME]
docker service scale [NAME_SERVICE]=[número]
docker node update --availability drain [ID]
status drain para de receber pode retornar para active que é o padrão
docker service update --image [IMAGE] [IDSERVICE]
docker service update --network-add [REDE] [IDSERVICE]
docker service update --network-add [REDE] [IDSERVICE]
No Kube existe o deployment que seria o meu serviço e os pods que são como computadores que hospedam containers, o meu serviço pode ser externalizado usando o minikube e caso algum pod caia, outro pod de replica substitui seu lugar para a aplicação continuar no ar
minikube start --driver=docker
kubectl create deployment [NAME-DEPLOY] --image=[NOME_IMAGE]
kubectl get deployment OU
kubectl describe deployment
kubectl get pods OU
kubectl describe pods
kubectl config view
kubectl expose deployment [NAME-DEPLOY] --type=[TIPO] --port=[PORTA]
minikube service [NAME-DEPLOY]
kubectl get services OU
kubectl describe services/[NAME-DEPLOY]
kubectl scale deployment/[NAME-DEPLOY] --replicas=[NÚMERO]
kubectl get rs
kubectl set image deployment/[NAME-DEPLOY] [NAME-CONTAINER]=[NEW-NAME-IMAGE]
kubectl rollout status deployment/[NAME-DEPLOY]
kubectl rollout undo deployment/[NAME-DEPLOY]
kubectl delete service [NAME-DEPLOY]
kubectl delete deployment [NAME-DEPLOY]
kubectl apply -f [NAME-ARQUIVO]
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
kubectl proxy
Para acessar o dashboard você precisa se autenticar e para isso deve criar dois services, já ter subido o servidor proxy
Um ServiceAccount com o tipo de usuario e outro ClusterRoleBinding fazendo uma ponte entre o serviço de usuario criado antes e o cluster
kubectl -n kubernetes-dashboard create token admin-user