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:
Instalando as dependências:
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:
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:
Verificando a instalação/serviço:
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:
| 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:
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.
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