Criar partição SWAP no Ubuntu Server 24.04

Vamos usar a forma mais comum e prática usando um arquivo swap:

Criar Swap usando arquivo

1. Verifique se já existe swap:

sudo swapon --show
free -h

2. Crie o arquivo swap (exemplo com 2GB):

sudo fallocate -l 2G /swapfile

3. Defina as permissões corretas:

sudo chmod 600 /swapfile

4. Configure como área de swap:

sudo mkswap /swapfile

5. Ative o swap:

sudo swapon /swapfile

6. Verifique se está ativo:

sudo swapon --show
free -h

7. Torne permanente (sobrevive a reinicializações):

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Ajustes opcionais de desempenho

Configurar swappiness (controla quando usar swap):

# Ver valor atual
cat /proc/sys/vm/swappiness

# Definir para 10 (usa swap menos agressivamente)
sudo sysctl vm.swappiness=10

# Tornar permanente
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

Tamanho recomendado de swap:

  • RAM ≤ 2GB: 2x o tamanho da RAM
  • RAM 2-8GB: igual ao tamanho da RAM
  • RAM > 8GB: pelo menos 4GB (ou mais se usar hibernação)

Configurar o nome do servidor e prepará-lo para receber um domínio

Usando o Ubuntu Server 24.04 como exemplo, vamos seguir os seguintes passos:

Primeiro, defina um nome apropriado para o servidor:

# Definir o hostname (exemplo: servidor01 ou o nome que preferir)
sudo hostnamectl set-hostname seu-nome-servidor

# Verificar se foi aplicado
hostnamectl

Depois, edite o arquivo /etc/hosts:

sudo nano /etc/hosts

Adicione uma linha como:

127.0.1.1    seu-nome-servidor.seudominio.com.br    seu-nome-servidor

Prevenindo o kernel de atualizar no Ubuntu 20.04

Atualizações de kernel são bem-vindas por trazerem correções, melhorias e maior segurança mas, dependendo do hardware podem ocorrer incompatibilidades causando consequências indesejáveis.

Para manter uma versão de kernel que comprovadamente funciona no seu hardware, é possível travar o sistema de atualização para determinado pacote:

sudo apt-mark hold <linux-image>

Onde linux-image é o nome completo da imagem a ser mantida.

Para desmarcar e permitir a atualização, trocamos o comando para:

sudo apt-mark unhold <linux-image>

Para saber quais pacotes estão marcados um hold:

sudo apt-mark showhold

Docker Básico com Ubuntu Server

Seguem informações de referência úteis para criar e executar uma imagem docker para um servidor Ubuntu com finalidade de uso no desenvolvimento de software para web.

Primeiro, o básico. Criamos um contêiner a partir de uma imagem. Essa imagem pode ser baixada do Docker Hub.

docker pull ubuntu:bionic

Estou usando a tag bionic para me referir a uma versão específica igual a mesma utilizada no servidor de produção.

Esse comando acima vai baixar a imagem para nossa máquina que já possui o serviço do doker rodando.

Uma vez que a imagem está baixada, vamos criar um contêiner a partir dela e expor as portas que serão utilizadas com o comando abaixo.

docker run --name bionic -p 8089:80 -p 5439:5432 -it -i ubuntu:bionic

Essas portas correspondem aos seguintes serviços respectivamente:

  • apache2 web server
  • postgresql database server

Esse comando (docker run … -it) vai te enviar para uma sessão dentro do contêiner.

É aconselhável executar uma atualização de pacotes antes de qualquer outro comando.

Volumes

Por padrão um contêiner descarta os dados gravados quando terminado. Para persistir os dados usamos os Volumes.

O comando abaixo cria um volume com o nome de bionic-vol.

docker volume create bionic-vol

Para usar esse volume, montamos o mesmo no comando run do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
--mount source=bionic-vol,target=/app \
-it -i ubuntu:bionic

Dessa forma, uma pasta /app poderá ser usada para armazenar de forma persistente qualquer arquivo ou estrutura de pastas (ex: local onde o servidor de banco de dados guarda seus arquivos).

Agora vamos aprimorar esse comando para atender a necessidade de um desenvolvedor web com persistência de dados e apontamento da pasta do projeto no host pelo web server do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
-v $HOME/Projetos:/var/www/html \
-v $HOME/docker/volumes/postgres:/var/lib/postgresql/data \
-it -i ubuntu:bionic

Comandos

Comandos para utilizar para manutenção do contêiner:

  • docker ps – lista contêineres em execução
  • docker attach bionic – conecta o terminal do container
  • docker volume ls – lista volumes instalados

Documentação oficial em https://docs.docker.com/.