Referência de uso do Docker e containers


Índice

Sobre Containers

//TODO: Complementar


Referências

Recursos oficiais

Docker

Kubernetes

Vídeos

Linuxtips

Fabrício Veronez KubeDev

TechWorld with Nana (en-US)


Instalação

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)


Hello World

Rodando um container existente

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

Criando um novo Container

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:

Execute:

docker build -t hello01 .

Execute:

docker image ls

Execute:

docker run -dp 8080:3000 d3a097e729f2


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.


Comandos

Comandos básicos

// 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]

Comentários