Skip to content

Instantly share code, notes, and snippets.

@gabrielsimplicio
Last active December 24, 2021 03:48
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save gabrielsimplicio/756edd405174cc5b2700d4b9d098be27 to your computer and use it in GitHub Desktop.
Save gabrielsimplicio/756edd405174cc5b2700d4b9d098be27 to your computer and use it in GitHub Desktop.
******** PARTE 1 - COMANDOS BÁSICOS
## Para listar as imagens existentes localmente
-> docker images
## Para rodar um container
-> docker run -it centos /bin/bash
run > executar uma imagem
-i > interatividade
-t > tty
centos > nome da imagem
/bin/bash > comando que deve ser executado após download da imagem e criação do container
* Se não tiver localmente, vai baixar lá do docker hub (https://hub.docker.com)
## Para exibir a versão do centos
-> cat /etc/*release*
* Observar que está dentro do container
## Para mostrar que é uma máquina como qualquer outra
-> yum update -y - CENTOS
## Para mostrar que somente o que eu quero está sendo executado
-> ps -ef
## Para sair sem encerrar o container
-> CTRL + P + Q
* Se eu sair com "exit", ou com "CTRL + D", eu vou encerrar o container. Com o "CTRL + P + Q", o container continuará ativo.
## Para listar os containers em execução
-> docker ps
## Para listar todos os containers - inativos ou não
-> docker ps -a
## Para entrar em um container em execução
-> docker attach <container-id>
## Para enviar um comando para um container em execução
-> docker exec <container-id> ps -ef
## Para parar um container
-> docker stop <container-id>
## Para remover um container
-> docker rm <container-id>
******** PARTE 2 - EXTERNALIZANDO PORTAS
## Para rodar um container, externalizando as portas
-> docker run -it -p 5000:80 ubuntu /bin/bash
-p > especificar a porta
5000 > porta do host
80 > porta do container
## Para instalar o nginx
-> apt-get update
-> apt-get install nginx -y
## Para iniciar o nginx
-> /etc/init.d/nginx start
## Para ver o processo do nginx (e demais processos) em execução
-> ps -ef
## Para exibir o nginx em execução
-> abrir o navegador
-> localhost:5000
******** PARTE 3 - DOCKER COMMIT
## Para criar uma imagem
-> docker commit <container-id> <nome>:1.0
-> docker images
## Para criar o container da imagem recém-criada
-> docker run -it -p 5001:80 <nome>:1.0 /bin/bash
## Para iniciar o nginx
-> /etc/init.d/nginx start
## Para ver o processo do nginx (e demais processos) em execução
-> ps -ef
## Para listar os containers em execução
-> docker ps
## Para exibir o nginx em execução
-> abrir o navegador
-> localhost:5001
## Para exibir o log do nginx em tempo real
-> tail -f /var/log/nginx/access.log
-> atualizar a página do navegador
******** PARTE 4 - MAPEANDO DIRETÓRIOS
## Para compartilhar volumes com o host
-> docker run -it -p 5002:80 -v /home/gabriel/devmt-demo/build:/var/www/html <nome>:1.0 /bin/bash
-> /etc/init.d/nginx start
## Para exibir o nginx em execução
-> abrir o navegador
-> localhost:5002
******** PARTE 5 - DOCKER HUB
- Abrir http://hub.docker.com/, para visualizar as imagens disponíveis
## Para compartilhar volumes com o host
docker run -d -p 5003:80 -v /home/gabriel/devmt-demo/build:/usr/share/nginx/html nginx
-> abrir o navegador
-> localhost:5003
******** PARTE 6 - DOCKER FILE
- Navegar até o projeto demo
-> cd /home/gabriel/devmt-demo
## Para criar um arquivo
-> touch Dockerfile
- Inserir o seguinte conteúdo:
FROM nginx
COPY ./build /usr/share/nginx/html
EXPOSE 80
## Para construir a imagem via Dockerfile
-> docker build -t devmt-demo .
build > gerar uma imagem através de um Dockerfile
-t > tag
devmt-demo > nome da imagem
. > diretório na qual eu devo ler o Dockerfile
-> docker images
## Para criar um container com a imagem recém-criada
-> docker run -d -p 5004:8080 devmt-demo
## Para exibir o app em funcionamento
- Abrir o navegador
- localhost:5004
* O projeto demo é um projeto simples feito em react. Pode ser substituído por qualquer aplicação estática feita em html.
@murillomr7
Copy link

Na linha 6 você definiu como "Para rodar um container", p/ iniciantes seria melhor dizer "Criar um novo container a partir de uma imagem"

@phmiranda
Copy link

como trabalhar com portas no ambiente de produção ao criar um container ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment