A criação e publicação de uma imagem Docker com NGINX envolve o encapsulamento do servidor web NGINX dentro de um contêiner Docker. Utilizando um arquivo Dockerfile
, os desenvolvedores especificam como o ambiente NGINX deve ser configurado. Uma vez criada, essa imagem pode ser publicada em repositórios como o Docker Hub, permitindo que outros desenvolvedores e sistemas a utilizem para desdobrar instâncias consistentes e isoladas do servidor NGINX em qualquer ambiente que suporte Docker.
Sumário do Conteúdo
Você Vai Gostar Também de:
Atividade 1.
Instale o Podman em sua máquina.
Passo 1.1. Instalação do Podman:
O Podman é uma ferramenta de gerenciamento de contêineres que não requer um daemon para funcionar e é projetada para ser uma alternativa direta ao Docker. Para instalar o Podman, a maioria das distribuições Linux oferece pacotes nativos através de seus gerenciadores de pacotes padrão, como apt
para distribuições baseadas em Debian ou yum
/dnf
para distribuições baseadas em Red Hat.
Após a instalação, o Podman permite aos usuários executar, construir e gerenciar contêineres e imagens sem a necessidade de privilégios elevados, proporcionando uma experiência semelhante ao Docker, mas sem a necessidade de um daemon em execução.
- Visite o site oficial do Podman/Docker e faça o download da versão adequada para o seu sistema operacional.
- Siga as instruções de instalação.
Passo 1.2: Utilize o gerenciador de pacotes da distribuição.
apt install podman
Atividade 2.
Crie um diretório para o projeto, e crie um arquivo chamado index.html.
Passo 2.1. Criação do Diretório:
mkdir projeto-nginx
cd projeto-nginx
Passo 2.2. Criação do index.html
:
echo "<h1>Olá, Mundo Docker com NGINX!</h1>" > index.html
ou
Passo 2.3. Conteúdo do index.html
:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Docker com NGINX</title>
</head>
<body>
<h1>Olá, Mundo Docker com NGINX!</h1>
</body>
</html>
Atividade 3.
Crie um arquivo chamado Dockerfile no mesmo diretório do index.html.
O arquivo Dockerfile (ou Containerfile, em contextos onde o Podman é preferido) é um script de instruções usado para criar uma imagem de contêiner ou imagem docker. Ele define um processo passo a passo, começando geralmente de uma imagem base, e em seguida, adiciona camadas através de instruções como COPY
, ADD
, RUN
, entre outras, para instalar softwares, configurar ambientes e definir metadados.
Uma vez escrito, o Dockerfile pode ser usado com ferramentas como Docker ou Podman para construir uma imagem de contêiner ou imagem docker, que posteriormente pode ser executada como um contêiner isolado ou distribuída através de repositórios como o Docker Hub.
Configure o Dockerfile
para usar a imagem base do NGINX e copiar o index.html
para o diretório correto.
Este arquivo pode ser nomeado como
Dockerfile
ouContainerfile
. Observe que não tem extensão e o primeiro caractere é maiúsculo.
Passo 3.1. Criação do Dockerfile
:
touch Dockerfile
Passo 3.2. Configuração do Dockerfile
:
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
EXPOSE 80
Atividade 4.
Construa a imagem Docker.
O “build de imagem docker” refere-se ao processo de transformar um conjunto de especificações e arquivos-fonte em uma imagem docker imutável, geralmente utilizando um arquivo Dockerfile ou Containerfile como guia. Durante esse processo, cada instrução no arquivo é executada sequencialmente, resultando em camadas que são empilhadas para formar a imagem final.

Essa imagem construída pode ser armazenada localmente ou enviada para um registro de contêiner, como o Docker Hub, permitindo que seja distribuída e executada em diferentes ambientes, garantindo consistência e isolamento na execução de aplicações.
Passo 4.1. Construção da Imagem Docker:
podman build -t meu-nginx-imagem:latest .
Passo 4.2. Teste Local:
podman run -d -p 8080:80 meu-nginx-imagem:latest
- No termial acesse
`curl http://localhost:8080`
Atividade 5.
Crie uma conta no hub.docker.com (se ainda não tiver uma).
Passo 5.1. Criação de Conta no Docker Hub:
- Visite hub.docker.com e siga as instruções para criar uma conta.

Atividade 6.
Envie sua imagem para o hub.docker.com.
Passo 6.1. Publicação da Imagem:
podman login
podman tag meu-nginx-imagem:latest SEU_USUARIO_DOCKER/meu-nginx-imagem:latest
podman push SEU_USUARIO_DOCKER/meu-nginx-imagem:latest
Atividade 7.
Crie um arquivo de configuração para o Deployment.
O “deployment” no Kubernetes é um recurso que automatiza o provisionamento e a gestão de conjuntos replicados de contêineres. Ele permite aos usuários definir o estado desejado para suas aplicações, especificando aspectos como a imagem do contêiner, o número de réplicas e as variáveis de ambiente.
O Kubernetes, então, garante que o estado atual do cluster sempre atenda ao estado desejado, gerenciando a criação, a atualização e a eliminação de pods conforme necessário. Além disso, os deployments oferecem mecanismos para atualizações contínuas, permitindo a implantação de novas versões de aplicações de maneira controlada e segura.
Passo 7.1. Criação do Arquivo de Configuração para o Deployment:
touch nginx-deployment.yaml
Passo 7.2. Configuração do Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: SEU_USUARIO_DOCKER/meu-nginx-imagem:latest
ports:
- containerPort: 80
Passo 7.3. Aplique o Deployment:
kubectl apply -f nginx-deployment.yaml
Passo 7.4. Verifique o Status do Deployment:
kubectl get deployments
Atividade 8.
Crie um arquivo de configuração para o Service para expor o Deployment.
O “service” no Kubernetes é um recurso que proporciona uma abstração para expor aplicações, executadas em um ou mais pods, como um serviço de rede. Ele permite a descoberta de serviços e o balanceamento de carga, garantindo que o tráfego seja direcionado para pods saudáveis e disponíveis, independentemente de sua localização no cluster.
Ao usar um service, os usuários não precisam se preocupar com a dinâmica de criação e destruição de pods, pois o service mantém um ponto de acesso estável e confiável para a aplicação, mesmo em face de atualizações e falhas.
Passo 8.1. Criação do Arquivo de Configuração para o Service:
touch nginx-service.yaml
Passo 8.2. Configuração do Service:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
Passo 8.3. Aplique o Service:
kubectl apply -f nginx-service.yaml
Atividade 9.
Acesse a aplicação usando o Service.
Passo 9.1. Acesse a Aplicação:
- Para obter o endereço IP externo do seu serviço:
kubectl get svc nginx-service
- Copie o endereço IP externo e cole-o em seu navegador ou no terminal com curl para acessar a aplicação.
Conclusão
A criação de uma imagem de contêiner ou seja imagem docker é um passo fundamental para garantir a consistência, reprodutibilidade e escalabilidade das aplicações modernas. Ao definir meticulosamente o ambiente, as dependências e o código em uma imagem, assegura-se que a aplicação se comportará de maneira idêntica, independentemente de onde o contêiner seja executado.
Uma vez que essa imagem é construída, ela serve como um modelo a partir do qual os contêineres são instanciados. Ao criar um contêiner usando essa imagem, beneficia-se da portabilidade e do isolamento, permitindo que a aplicação seja facilmente distribuída, escalada e gerenciada em diversos ambientes, desde um único servidor até clusters complexos. Em resumo, a combinação de imagens de contêiner bem definidas com a capacidade de criar contêineres a partir delas é a espinha dorsal da revolução dos contêineres na tecnologia da informação.