Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
30.10.2024

Como utilizar um ficheiro Docker para criar uma imagem Docker

Dockerize seus aplicativos na AlexHost: Dominando Dockerfiles

Por que usar Docker na AlexHost? Um Dockerfile roteiriza o ambiente do seu aplicativo, tornando-o portátil e consistente. Os servidores VPS e dedicados de alto desempenho da AlexHost, com armazenamento NVMe e acesso root, fornecem uma plataforma robusta para construir e implantar aplicativos Dockerizados como Node.js ou WordPress. Este guia explica os Dockerfiles e como criar, construir e executá-los na AlexHost em 2025.

Guia passo a passo para criar um Dockerfile e construir uma imagem

Passo 1: Crie seu projeto

Para começar, precisa de uma aplicação simples para contentorizar. Para este exemplo, criaremos um aplicativo Node.js básico. Se você não tiver o Node.js instalado, poderá seguir estas etapas para criar um aplicativo Node.js simples

  1. Crie um diretório de projeto:
create a new project folder: mkdir my-docker-app
cd my-docker-app
  1. Crie um arquivo package.json para seu aplicativo Node.js:
npm init -y
  1. Crie um arquivo server.js:
touch server.js
  1. Adicione o seguinte conteúdo ao ficheiro server.js:

const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => { res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello Worldn'); });
server.listen(port, hostname, () => {
console.log(Server running at http://${hostname}:${port}/); });

Passo 2: Escrever o ficheiro Docker

Depois de ter seu aplicativo principal, o próximo passo é criar um Dockerfile que será usado para construir uma imagem Docker para esse aplicativo

  1. Crie o Dockerfile no diretório raiz do projeto:
tap Dockerfile
  1. Adicione instruções ao Dockerfile:

Aqui está um Dockerfile simples para o seu aplicativo Node.js:

FROM node:14   # Use an official Node.js runtime as a base image
WORKDIR /app # Set the working directory inside the container
COPY package*.json ./ # Copy package.json and install dependencies
RUN npm install
COPY . .  # Copy the rest of the application code
EXPOSE 3000  # Expose the port that the app runs on
CMD ["node", "server.js"] # Command to run the application

Explicação do ficheiro Docker:

  • FROM: Especifica a imagem base sobre a qual construir sua imagem. Neste caso, é a imagem oficial do Node.js 14.
  • WORKDIR: Especifica o diretório de trabalho no contêiner. Todos os comandos subsequentes serão executados neste diretório.
  • COPY: Copia arquivos da máquina host para o contêiner Docker
    • COPY package*.json ./: Copia os arquivos package.json e package-lock.json .
    • COPY ..: Copia todo o projeto para o contêiner.
  • RUN: Executa um comando no contêiner, neste caso executando o npm install para instalar as dependências do Node.js.
  • EXPOSE: Informa ao Docker que o contêiner está escutando na porta 3000.
  • CMD: Especifica o comando a ser executado no contêiner quando ele for iniciado (neste caso, executando o aplicativo Node.js com node server.js).

Etapa 3: construir a imagem do Docker

Depois de preparar seu Dockerfile, você pode construir a imagem do Docker usando o comando docker build

  1. No diretório do projeto, execute o seguinte comando:
docker build -t my-docker-app .
#

Aqui está o que o comando faz

  • t my-docker-app.
  • O botão . especifica o diretório atual (onde o Dockerfile está localizado).

O Docker processará o arquivo Docker passo a passo, criando a imagem de acordo com suas instruções. Se tudo estiver configurado corretamente, você verá uma mensagem informando que a imagem foi criada com sucesso

Passo 4: Iniciar o contentor Docker

Depois que a imagem for construída, você pode criar e executar um contêiner usando o comando docker run

docker run -p 3001:3000 my-docker-app
#
  • p 3000:3000: Corresponde à porta 3000 na sua máquina local com a porta 3000 no contentor.
  • my-docker-app: O nome da imagem do Docker que você criou.

Você deve ver a mensagem: O servidor está em execução em http://0.0.0.0:3001/.Para testar o aplicativo, abra o navegador da Web ou use o curl para visitar

Deverá ver “Hello World” escrito no ecrã .

Etapa 5: Enviar a imagem do Docker para o Docker Hub (opcional)

Se você quiser compartilhar sua imagem com outras pessoas ou hospedá-la em um servidor, você pode enviá-la para o Docker Hub

  1. Primeiro, faça login no Docker Hub:
docker Login
  1. Em seguida, marque a sua imagem com o seu nome de utilizador no Docker Hub:
docker tag my-docker-app your-dockerhub-username/my-docker-app
  1. Envie a imagem para o Docker Hub:
docker push your-dockerhub-username/my-docker-app

Sua imagem do Docker agora está disponível publicamente (ou privadamente) no Docker Hub

Práticas recomendadas para Dockerfile

  • Use imagens de base pequenas e específicas: se possível, use imagens de base leves, como alpine, para reduzir o tamanho da imagem.
  • Minimize o número de camadas: Cada comando no dockerfile cria uma nova camada. Tente minimizar o número de camadas combinando comandos sempre que possível (por exemplo, use && para combinar vários comandos em uma única instrução RUN ).
  • Use a compilação em vários estágios: isso ajuda a reduzir o tamanho da imagem final, separando o ambiente de compilação do ambiente de execução.
  • Usar cache: o Docker armazena em cache cada camada da imagem, portanto, reutilizar os mesmos comandos (como COPY e RUN) ajuda a acelerar as compilações subsequentes.

Conclusão: Dockerize com AlexHost

Os Dockerfiles tornam as suas aplicações portáteis e escaláveis, e o VPS alimentado por NVMe da AlexHost garante compilações e implementações rápidas. Crie Dockerfiles enxutos, use compilações em vários estágios e proteja com UFW. Quer se trate de uma aplicação Node.js ou WordPress, o acesso à raiz e o suporte da AlexHost tornam o Docker uma brisa – conteinerize sua aplicação e implante com confiança hoje mesmo!

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills