Pular para conteúdo

Preparar o Ambiente do Treinamento

O procedimento a seguir é baseado em uma Distribuição Linux Ubuntu, utilizando o gerenciador de pacote apt.

Obtendo a lista atualizada de pacotes:

Executar no HOST
sudo apt update
sudo apt upgrade

Instalando as dependências:

Executar no HOST
sudo apt-get install curl apt-transport-https ca-certificates software-properties-common

Adicionado chave-gpg para utilizar a última versão e estável do Docker:

Executar no HOST
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Atualizando e instalando Docker Community Edition:

Executar no HOST
sudo apt update
sudo apt-get install docker-ce

Verificando a instalação/serviço:

Executar no HOST
sudo systemctl status docker
 docker.service - Docker Application Container Engine
  Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
  Active: active (running)
   Docs: https://docs.docker.com
 Main PID: 11303 (dockerd)
  Tasks: 25
  Memory: 108.5M
   CPU: 27.694s
  CGroup: /system.slice/docker.service
     ├─11303 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 

Toda administração com docker irá exigir o uso do comando sudo antes, no entanto, caso queira permitir administrar docker com seu usuário comum, deve-se adicionar o seu usuário só grupo docker, executando o comando a seguir:

Executar no HOST
sudo usermod -aG docker $(whoami)
INSTRUÇÕES DESCRIÇÃO
$ docker --version Retorna a versão do Docker instalada
$ docker image ls Listando imagens no Computador
$ docker image rmi <ID_DA_IMAGEM> Removendo uma imagem pelo <ID>
$ docker container ls Lista os container em execução
$ docker container ls --all Lista todos os containers
$ docker container start <ID_DO_CONTAINER> Inicia o container pelo seu <ID>
$ docker container stop  <ID_DO_CONTAINER> Para o container pelo seu <ID>
$ docker container rm <ID_DO_CONTAINER> Removendo o container pelo <ID>
PARÂMETROS DESCRIÇÃO
--publish, -p Mapeamento de porta para o Host
--volume, -v Mapeamento de volume(diretórios/dispositivos)
--device Forward de algum dispositivo, como: /dev/ttyUSB0
--privileged Concede privilégios estendidos ao Container
--detach Executa o container em modo background

Algumas opções de executar um container:

EXECUÇÃO DE CONTAINER DESCRIÇÃO
$ docker container run -it <ID_TO_CONTAINER> Rodando um container em modo iterativo,ou seja, irá lançar um terminal para utilizarmos dentro do container
$ docker run -it --rm <ID_DO_CONTAINER> Rodando um container em modo interativo mas que ao sair será destruída sua instância
$ docker container run --publish 8080:8080 --detach --name myContainer b2container:1.0 Rodando um container fazendo forward da porta 8080, com nome myContainer e no modo --detach colocando o Container em background
$ docker run -it –rm -v
${HOME}/yp:/home/b2open/yp <ID_DO_CONTAINER>
Rodando um container em modo interativo mas que ao sair será destruída sua instância, mas possui um mapeamento do diretório $HOME/yp para dentro do container em /home/b2open/yp

Para utilizar um container pode-se utilizar uma imagem pronta da internet/repositórios ou criar sua própria imagem, com as devidas configurações, permissões e estruturas, o arquivo que automatiza estas etapas é chamado de Dockerfile.


Gerando a imagem do Container do Treinamento

Localize o arquivo Dockerfile baixado, e via Terminal execute o comando abaixo:

Executar no HOST
docker build --no-cache -t b2open/treinamento-linux-embarcado -f Dockerfile.txt . 


Criando a instância do Treinamento

IMPORTANTE: Antes de criar a instância do container, certifique-se de criar do diretório ~/treinamento-b2open no HOST.

Executar no HOST
docker run -it --rm --privileged --cap-add=NET_ADMIN --name treinamento-linux-embarcado --hostname treinamento-b2open -e DISPLAY=$DISPLAY -v ${HOME}/treinamento-b2open:/home/b2open/treinamento -v /tmp:/tmp -v /dev:/dev -v /var/run/dbus:/var/run/dbus -v /run/udev:/run/udev:ro -v /etc/localtime:/etc/localtime:ro b2open/treinamento-linux-embarcado /bin/bash