Nos capítulos anteriores, utilizamos imagens do Hub Docker e as personalizamos para atender nossas necessidades de configuração de Servidor de Banco de Dados e Servidor de Aplicação e Servidor de Monitoramento.
Uma vez que temos um arquivo Dockerfile contento essa alteração, o mesmo Dockerfile pode ser utilizado para a construção de uma imagem personalizada e já fizemos isso em capítulo anteriores utilizando-se o comando docker build. Entretanto, a imagem personalizada foi mantida apenas localmente e não disponibilizada para uso geral. Para darmos mais esse passo precisamos, primeiro, ter nossa conta no Hub Docker e criar o nosso DOCKER_TOKEN, conforme descrito na Seção 5.4 do Capítulo 5. Os passos a seguir assumem que essa tarefa já foi feita e, portanto, podemos agora enviar as imagens geradas localmente para nossas respectivas contas no Hub Docker de modo que, posteriormente, podemos simplificar o nosso arquivo do docker-compose para que passa a utilizar essas nossas imagens.
Para realizar esse processo, estão disponibilizados no nosso GitHub a versão mais atual dos aquivos do devops-extra, incluindo esses arquivos referentes ao Capítulo 6. Para download basta clonar ou atualizar seu repositório local com os dados de https://github.com/aurimrv/devops-extra.
Dentro da pasta devops-extra/cap-06 estão os subdiretórios com os arquivos Dockerfile personalizando os servidores Web e de Monitoramento. A título de ilustração, abaixo está o Dockerfile do Servidor de Banco de Dados.
$ cd ~/temp/devops-extra/cap-06/db/
$ ls -l
total 8
-rw-r--r-- 1 auri auri 245 out 22 14:50 Dockerfile
-rw-r--r-- 1 auri auri 40 out 22 14:50 schema.sql
Para construir essa imagem personalizada para uso local, utilizamos o comando abaixo:
$ docker build -t mysql-server-img .
Entretanto, como desejamos que essa imagem possa ser complartilhada via Hub Docker, inicialmente, precisamos mudar o seu nome de modo a incluir, precendendo o mesmo, o DOCKER_ID do usuário Docker do Hub Docker que foi criado. No meu caso, esse DOCKER_ID é aurimrv. Desse modo, o comando de construção a ser utilizado será:
Ao final desse processo temos uma imagem denominada aurimrv/mysql-server-img, criada e armazenada localmente. Agora vamos enviá-la para o Hub Docker. Para isso você precisa saber o seu DOCKER_ID e o seu DOCKER_TOKEN. Ambos serão utilizados no processo. Ao ser solicitada a Password, simplesmente copie e cole o seu token de acesso de desenvolvedor na plataforma Hub Docker.
Após o login realizado com sucesso agora basta enviar a imagem para sua área do Hub Docker. Isso é feito de forma semelhante a atualização via Git, por meio de um comando docker push, conforme ilistrado abaixo.