Docker: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 32: Linha 32:
'''Ajuda''' com comandos Docker:
'''Ajuda''' com comandos Docker:
  docker help
  docker help
==Imagens Docker==
;Listar imagens: Imagens do Docker já baixadas na máquina hospedeira.
docker images
;Remover imagens: Remove imagens baixadas na máquina hospedeira.
docker rmi imagem
==Instalação de Linux no Docker==


===Linux Ubuntu rodando em um contêiner===
===Linux Ubuntu rodando em um contêiner===

Edição das 17h43min de 21 de junho de 2021

Docker

Docker é um Contêiner, que é uma unidade padronizada de software que permite aos desenvolvedores isolar suas aplicações do meio no qual vai rodar.

A imagem de um contêiner Docker é leve, roda de forma independente e possui todas os requisitos necessários para rodar as aplicações, como códigos, ferramentas de sistema, bibliotecas e configurações.

https://www.docker.com/resources/what-container

Docker - Conceitos Básicos

Conceitos Básicos [1]:

  • Image: Uma imagem define o sistema operacional base, pacotes, ambiente, configuração, bibliotecas e tudo aquilo que for necessário para rodar uma aplicação.
  • Container: É uma instância criada de uma imagem rodando com comando apropriado. De uma imagem muitas instâncias podem ser criadas.
  • Dockerhub: É um repositório de onde podemos baixar (ou subir) imagem.
  • Dockerfile: É um arquivo com os passos para construir uma imagem a partir de uma imagem base. Inicia a partir de uma imagem base, realiza atualizações do sistema, instala pacotes, ajusta o ambiente e configurações, copia arquivos relacionados a aplicação, e com um comando default opcional, roda a aplicação.

Instalação e teste

Instalação do Docker

Sobre Ubuntu 20.04:

Verificar status da instalação:

sudo systemctl status docker

Hello World

sudo docker run hello-world 
Quando manda rodar uma aplicação ou sistema o Docker verifica se há imagem está disponível localmente, se não, faz o download e em seguida executa.

Ajuda com comandos Docker:

docker help

Imagens Docker

Listar imagens
Imagens do Docker já baixadas na máquina hospedeira.
docker images
Remover imagens
Remove imagens baixadas na máquina hospedeira.
docker rmi imagem

Instalação de Linux no Docker

Linux Ubuntu rodando em um contêiner

Rodar um Linux Ubuntu em um contêiner:

docker run -it --name ubuntu1 ubuntu bash
  • O parâmetro --name é o nome do contêiner e ubuntu é a imagem a ser utilizada.
  • A opção -i roda em modo interativo e a opção -t abre um terminal.

Sai do terminal e colocar o contêiner em segundo plano:

CTRL-p CTRL-q

Listar contêineres ativos:

docker ps (-a todos os contêineres, ativos e inativos)

Atachar ao terminal do contêiner:

docker attach ubuntu1

Para rodar uma segunda instância do Ubuntu, pode executar:

docker run -it --name ubuntu2 ubuntu bash

Parar/reiniciar e Parar/remover uma instância rodando em um contêiner:

docker stop ubuntu1
docker start ubuntu1
docker stop ubuntu1
docker rm ubuntu1

Linux Alpine rodando em um contêiner

O Alpine Linux é uma distribuição Linux minimalista, simples e segura (Alpine: Small. Simple. Secure.), ideal para dispositivos embarcados com hardware reduzido.

Várias aplicações que rodam no Docker utilizam o Alpine como sistema operacional base.

Rodar um Linux Alpine em um contêiner
docker run -it --name alpine1 alpine ash
  • O parâmetro --name é o nome do contêiner e alpine é a imagem a ser utilizada.
  • A opção -i roda em modo interativo e a opção -t abre um terminal.

Colocar contêiner em segundo plano:

CTRL-p CTRL-q

Listar contêineres ativos:

docker ps (-a todos os contêineres, ativos e inativos)

Atachar ao terminal do contêiner:

docker attach alpine1

Parar/reiniciar e Parar/remover contêiner:

docker stop alpine1
docker start alpine1
docker stop alpine1
docker rm alpine1

Configuração de rede

O Docker usa diferentes drivers para conectividade em rede https://docs.docker.com/network/:

Teste de rede bridge com Alpine Linux

Referência: [2]

Lançar duas máquinas alpine no Docker:

docker run -it --name alpine1 alpine ash
docker run -it --name alpine2 alpine ash

Verificar os contêineres iniciados:

docker container ls

Inspecionar a configuração de rede dos contêineres:

docker network inspect bridge 
Próximo ao topo está a sub-rede da bridge (172.17.0.0/16) e o gateway (172.17.0.1) entre o host do Docker e a bridge.
Cada alpine tem seu endereçamento IP pertencente a esta bridge.

Acessar o terminal de cada alpine:

docker attach alpine1

Verificar endereçamento IP:

ip addr show

Testar conectividade:

ping 172.17.0.1 (host Docker)
ping 172.17.0.2 (alpine2)
ping google.com

Parar e remover máquinas alpine:

docker container stop alpine1 alpine2
docker container rm alpine1 alpine2

Teste do sistema operacional Contiki

Baixar imagem do Contiki:

docker pull contiker/contiki-ng
docker images

Lançar máquina Contiki:

docker run -it --name contiki1 contiker/contiki-ng
docker start contiki1
docker attach contik

Referências

Evandro.cantu (discussão) 13h48min de 3 de abril de 2020 (-03)