//TODO: Complementar
Docker
Kubernetes
Linuxtips
Fabrício Veronez KubeDev
TechWorld with Nana (en-US)
O jeito mais fácil de rodar o Docker no Windows é utilizando o Docker Desktop, mas tem um porém: Em Jan/2022 a licença do Docker Desktop Windows foi alterada e agora ele não é mais FREE para uso corporativo, por isso muitas empresas solicitaram que seus funcionários removessem o Docker Desktop e instalassem alguma alternativa gratuita.
Abaixo opções para rodar Containers no Windows, utilizando, ou não o Docker Desktop:
1- Instalar o Docker Desktop Para instalar o Docker Desktop, siga as instruções aqui: https://www.docker.com/get-started
ou
2- Instalar o Docker no WSL (recomendo) Passos instalação Instalando o Docker no WSL (alternativa ao Docker Desktop)
ou
3- Instalar o podman Passos instalação Instalando o podman (alternativa ao Docker Desktop)
NOTA: Se você instalou o Docker no WSL, precisa executar os comandos abaixo dentro do Terminal do WSL (iniciar / pesquisar “Ubuntu” / clicar no “Ubuntu”)
Para executar um Container de exemplo, execute:
docker run -dp 8080:80 docker/getting-started
Então, ao acessar a url abaixo no browser:
http://localhost:8080/tutorial/
Você verá o site entregue pelo Container rodando na sua máquina.
Para listar os containers rodando, execute:
docker ps
Para parar esse container, execute: “docker stop [container-name]”
docker stop quirky_torvalds
Se rodar novamente:
docker ps
Verá que o Container não aparece mais na lista, ele está parado, mas não foi excluído. Ele irá aparecer se você executar:
docker ps -a
Para iniciar o container novamente, execute:
docker start quirky_torvalds
Para remover totalmente o Container primeiro pare ele e depois execute:
docker rm quirky_torvalds
Vamos fazer um teste utilizando o NodeJs, então primeiro verifique se o NodeJs está instalado no terminal do Linux, execute:
node --version
Se o Node não estiver instalado, execute os passos abaixo para realizar a instalação:
Aqui tem os passos para a instalação: https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl. Note que a recomendação é instalar o node utilizando o NVM.
Instale o Curl:
sudo apt-get update
sudo apt-get install curl
Instale o NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bas
NOTA: Esse comando vai instalar o NVM v0.39, antes de executa-lo, confira a versão atual do NVM aqui: https://github.com/nvm-sh/nvm#install–update-script e instale a versão atual.
Verifique a instalação do NVM:
nvm --version
NOTA: Se receber um erro: “command not found”, feche o Terminal, abra outro e tente novamente.
Para instalar o Node, execute:
nvm install node
Será instalada a versão atual do Node, para listar as versões instaladas utilize:
nvm list
Para verificar a versão instalada do Node execute:
node --version
npm --version
Crie uma pasta “hello”, entre nessa pasta e abra o VSCode nela rodando os comandos abaixo:
mkdir hello
cd hello
code .
Utilizando o VSCode, crie uma pasta “app” e dentro dessa pasta um arquivo “app.js” com o seguinte conteúdo:
const http = require("http");
const hostname = "127.0.0.1";
const port = 3000;
const server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(port, hostname, function() {
console.log(`Server running at http://${hostname}:${port}/`);
})
Na raiz (pasta hello) crie um arquivo “Dockerfile” e inclua o seguinte conteúdo:
FROM node:13-alpine
RUN mkdir -p /home/app
COPY ./app /home/app
WORKDIR /home/app
RUN npm install
CMD ["node", "app.js"]
Vai ficar assim:
Para executar essa aplicação NodeJs dentro de um container:
Abra o terminal do VSCode (Terminal / New Terminal)
Altere o Terminal para o Linux:
Execute:
docker build -t hello01 .
Execute:
docker image ls
Copie o IMAGE ID, da imagem recém criada, por exemplo: “d3a097e729f2”
E então execute a imagem:
Execute:
docker run -dp 8080:3000 d3a097e729f2
E acesse no brower:
DICA: Alterar o terminal Default
Para alterar o terminal padrão do VsCode, faça o seguinte:
Toda vez que você abrir um novo terminal do VSCode (Terminal / New Terminal) já vai abrir o Terminal do WSL com Linux.
// Listar containers
docker ps
// Listar containers, incluindo os não rodando
docker ps -a
//Iniciar um container
docker start [name]
// Parar um container
docker stop [name]
// Remover um container
docker rm [name]