Introdução
Neste laboratório, exploraremos o processo de instalação do Jenkins usando o Docker. Jenkins é um servidor de automação amplamente utilizado para processos de integração contínua e entrega contínua (CI/CD). Ao final deste laboratório, você terá experiência prática na configuração do Jenkins com Docker, fornecendo uma base sólida para futuros projetos DevOps.
Para iniciantes, é importante entender que o Docker é uma plataforma que permite empacotar e executar aplicativos em ambientes isolados chamados de contêineres (containers). Esse isolamento garante que seu aplicativo funcione de forma consistente em diferentes sistemas. Jenkins, por outro lado, é uma ferramenta que ajuda a automatizar partes do desenvolvimento de software, particularmente a construção, teste e implantação de código.
Se você é novo no Linux ou no LabEx, é recomendado começar com o Quick Start with Linux ou Practice Linux Commands para aprender o básico sistematicamente. Após concluir o curso, você pode retornar aqui para praticar suas habilidades.
Preparando o Ambiente Docker
Nesta etapa, garantiremos que o Docker esteja devidamente instalado e em execução em nosso sistema. O Docker é essencial para este laboratório, pois nos permite executar o Jenkins em um contêiner (container), fornecendo um ambiente consistente e isolado.
Primeiramente, vamos verificar se o Docker está instalado e em execução. Abra um terminal e execute o seguinte comando:
docker --version

Este comando deve exibir a versão do Docker instalada em seu sistema. Você deve ver uma saída semelhante a esta:
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3
Se você não vir um número de versão, pode significar que o Docker não está instalado ou não está no PATH do seu sistema. Não se preocupe se isso acontecer; abordaremos isso em breve.
Em seguida, vamos verificar se o daemon do Docker está em execução:
sudo systemctl status docker
Este comando verifica o status do serviço Docker. Você deve ver uma saída indicando que o serviço Docker está ativo (em execução). Pode ter uma aparência semelhante a esta:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-09-11 10:00:00 UTC; 2h 30min ago
Se o Docker não estiver em execução, você verá uma mensagem indicando que o serviço está inativo ou falhou.
Baixando a Imagem Docker do Jenkins
Nesta etapa, faremos o download da imagem Docker oficial do Jenkins do Docker Hub. Docker Hub é um repositório baseado em nuvem onde as imagens Docker são armazenadas e compartilhadas.
Para obter a versão LTS (Long Term Support - Suporte de Longo Prazo) mais recente do Jenkins, execute o seguinte comando:
docker pull jenkins/jenkins:lts
Vamos detalhar este comando:
docker pulldiz ao Docker para baixar uma imagemjenkins/jenkinsé o nome da imagem (criada pelo projeto Jenkins):ltsé uma tag que especifica que queremos a versão de Suporte de Longo Prazo, que geralmente é mais estável
Este comando baixa a imagem do Jenkins para sua máquina local. O download pode levar alguns minutos, dependendo da velocidade da sua internet. Você verá barras de progresso indicando o status do download de várias camadas que compõem a imagem.
Após a conclusão do download, você pode verificar se a imagem agora está disponível localmente executando:
docker images
Este comando lista todas as imagens Docker em seu sistema. Você deve ver a imagem do Jenkins listada na saída, semelhante a esta:
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts 7a7add0bf3da 8 days ago 470MB
Se você não vir a imagem do Jenkins, pode significar que o download falhou. Nesse caso, tente executar o comando docker pull novamente. Se os problemas persistirem, verifique sua conexão com a internet ou tente usar uma rede diferente.
Criando um Volume Docker para os Dados do Jenkins
Nesta etapa, criaremos um volume Docker para armazenar persistentemente os dados do Jenkins. Esta é uma etapa crucial para manter a configuração do Jenkins e o histórico de compilação.
Volumes Docker fornecem uma maneira de persistir dados gerados e usados por contêineres Docker. Isso é particularmente importante para o Jenkins, pois queremos reter a configuração, os dados dos jobs e os artefatos de compilação, mesmo que o contêiner seja interrompido ou removido.
Crie um novo volume chamado jenkins-data executando:
docker volume create jenkins-data
Este comando diz ao Docker para criar um novo volume. O Docker gerencia esses volumes, armazenando-os em uma parte do sistema de arquivos do seu host.
Você pode verificar se o volume foi criado listando todos os volumes Docker:
docker volume ls
Você deve ver jenkins-data na lista de volumes, assim:
DRIVER VOLUME NAME
local jenkins-data
Se você não vir o volume, tente criá-lo novamente. Se os problemas persistirem, certifique-se de ter as permissões necessárias para criar volumes Docker (você pode precisar usar sudo se seu usuário não estiver no grupo docker).
Entender os volumes Docker é importante porque:
- Eles permitem que os dados persistam além do ciclo de vida de um contêiner.
- Eles podem ser facilmente copiados e restaurados.
- Eles podem ser compartilhados entre contêineres, se necessário.
Executando o Container Docker do Jenkins
Agora que temos a imagem do Jenkins e um volume para persistência de dados, podemos executar o contêiner do Jenkins. Esta etapa realmente iniciará o Jenkins em um contêiner Docker, tornando-o acessível em seu sistema.
Executaremos o contêiner com as seguintes configurações:
- Mapear a porta 8080 do contêiner para a porta 8080 do host (para a interface web)
- Mapear a porta 50000 do contêiner para a porta 50000 do host (para conexões de agente)
- Montar o volume
jenkins-dataem/var/jenkins_homeno contêiner - Executar o contêiner em modo detached (desacoplado)
Execute o seguinte comando para executar o contêiner do Jenkins:
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins-lts jenkins/jenkins:lts
Vamos detalhar este comando:
docker runcria e executa um novo contêiner-dexecuta o contêiner em modo detached (em segundo plano)-p 8080:8080mapeia a porta 8080 no contêiner para a porta 8080 no seu host-p 50000:50000mapeia a porta 50000 no contêiner para a porta 50000 no seu host-v jenkins-data:/var/jenkins_homemonta nosso volume Docker no diretório home do Jenkins no contêiner--name jenkins-ltsdá ao nosso contêiner um nome para fácil referênciajenkins/jenkins:ltsespecifica a imagem a ser usada
Após executar este comando, o Docker iniciará o contêiner do Jenkins em segundo plano. Você pode verificar se o contêiner está em execução executando:
docker ps
Este comando lista todos os contêineres Docker em execução. Você deve ver o contêiner do Jenkins listado na saída, semelhante a este:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
747b6dc7b1af jenkins/jenkins:lts "/usr/bin/tini -- /u…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins-lts
Se você não vir o contêiner do Jenkins, pode ter falhado ao iniciar. Você pode verificar se há mensagens de erro usando:
docker logs jenkins-lts
Isso mostrará os logs do contêiner, o que pode ajudar a diagnosticar quaisquer problemas.
Acessando a Interface Web do Jenkins
Com o container do Jenkins agora em execução, podemos acessar sua interface web para completar a configuração inicial. Este passo irá guiá-lo através do acesso ao Jenkins e da realização da configuração inicial.
Existem duas maneiras de acessar a interface web do Jenkins:
Clique no símbolo
+na aba superior do ambiente virtual para criar um novoWeb Servicee insira a porta8080.
Este método funciona dentro do ambiente de laboratório, criando uma nova aba que exibirá a interface do Jenkins.
Abra o navegador Firefox na área de trabalho VNC. O navegador abrirá automaticamente em
http://localhost:8080, então você não precisa inserir o URL manualmente.
Você deverá ver a página "Unlock Jenkins" (Desbloquear Jenkins). Esta medida de segurança garante que apenas usuários autorizados possam configurar o Jenkins.
Para este ambiente de laboratório, o nome de usuário padrão é admin e a senha também é admin.
Insira essas credenciais na página "Unlock Jenkins" e clique em "Continue" (Continuar).

Após desbloquear o Jenkins, você será guiado pelo processo de configuração inicial, que inclui a instalação de plugins e a criação de um usuário administrador. Para este laboratório, você pode escolher a opção "Install suggested plugins" (Instalar plugins sugeridos) para começar rapidamente.
Resumo
Neste laboratório, instalamos e configuramos com sucesso o Jenkins usando o Docker. Cobrimos etapas essenciais, incluindo a preparação do ambiente Docker, o pull da imagem do Jenkins, a criação de um volume persistente para os dados do Jenkins, a execução do contêiner do Jenkins e o acesso à interface web do Jenkins para a configuração inicial.
Esta experiência prática forneceu a você uma base sólida no uso do Docker para implantar o Jenkins, uma habilidade crucial nas práticas modernas de DevOps. Agora você está pronto para explorar o Jenkins mais a fundo, criar tarefas de build e integrá-lo ao seu fluxo de trabalho de desenvolvimento.

