Como criar uma imagem docker

Como criar uma imagem docker e pra que?

Estou em andamento com um artigo no qual preciso de um Ubuntu Xenial para dar continuidade, então decidi previamente escrever esse artigo explicando como fazer o processo, caso você deseje executar os próximos 2 artigos relacionados. Os requisitos mínimos para isso é que você esteja usando um Linux nativamente e que esse Linux seja baseado em Debian (Ubuntu, Mint, Xubuntu etc). Vou mostrar rapidamente como criar uma imagem docker e conectar-se a um container criado a partir dela e volto ao artigo que estava escrevendo, relacionado a embarcados e garanto que vai ser muito interessante.

debootstrap

Para criarmos uma imagem base, precisaremos dessa ferramenta. Ela instala cria tanto imagens de Debian quanto de Ubuntu, então fica fácil gerar uma imagem base para o docker. Se não a tem instalada ainda, proceda com o comando a seguir.

sudo su
apt-get install debootstrap

Depois disso, criamos um chroot básico:

debootstrap --arch=amd64 xenial xenial http://archive.ubuntu.com/ubuntu/
sudo tar -C xenial -c . | docker import - xenial

E fazemos o primeiro teste:

docker run xenial cat /etc/lsb-release

Deve retornar algo como:

Como criar uma imagem docker

Agora vamos mexer um pouquinho nas coisas. Use o comando docker ps -a e veja o hash relacionado ao comando dado.

Como criar uma imagem docker

Encontrando-a, remova a referência:

docker rm 215236196a7e

docker save

Agora vamos gerar uma imagem de backup.

docker save xenial > xenial.tar
docker save --output xenial.tar xenial
docker save -o xenial.tar xenial
docker save -o xinial.tar xenial:latest

docker load

Agora, antes de carregá-la, remova a imagem criada previamente.

docker rmi xenial
docker load <xenial.tar
docker load --input xenial.tar
docker images

Deve retornar algo como:

Como criar uma imagem docker

Agora devemos criar, iniciar e conectar ao container:

docker run  -it --name armbian -p 8180:80 -p 8122:22  \
-p 10000:10000 -v ~/.ssh:/root/.ssh \
-v ~/my_workspace/armbian:/root/workspace:rw xenial:latest /bin/bash

Se tudo der certo e nada der errado, você já estará dentro do docker. Só para deixar claro, o docker faz paralelização de processos, ele não é uma virtualização. Também, a partir do momento que você executar esse comando anterior, estará na raiz do sistema criado com docker run. Você perceberá que o prompt ficará diferente:

Como criar uma imagem docker

Agora você já pode instalar seus programas, fazer update do repositório de pacotes e tudo o mais. Se não está familiarizado com o docker e não conhece os comandos, sugiro que leia esse artigo. Se tiver interesse de usar visão computacional e tem uma boa placa NVidia, pode querer configurar o cuda no docker. Nesse caso, recomendo esse outro artigo.

Agora já posso finalizar o outro artigo!

 

 

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.