Para uma solução mais simples e atualizada, devem utilizar o seguinte script (Docker - Kubernetes → Docker LXC): https://tteck.github.io/Proxmox/
A pedido de várias famílias, seguem os passos de instalação de Docker + Portainer em LXC (Proxmox 7.1.x - embora deva funcionar sem problemas em outras versões).
Esta solução traz as seguintes vantagens:
- Baixo uso de recursos quando comparado com uma VM (mesmo com um Ubuntu Minimized).
- Tão ou ainda mais simples de instalar que em VM.
- Simples de manter sem necessidade de configurações extra (vem com a funcionalidade de auto-update ativa).
- Reboots praticamente instantâneos.
- Menos wearout nos discos pois escreve menos que uma VM.
Por outro lado, tem uma desvantagem:
- Principalmente em modo privilegiado, torna-se mais facilitado o acesso ilegítimo e a comunicação entre o LXC e o Host/Proxmox. (Se não precisarem do modo privilegiado, não ativem. Se não souberem o que estão a fazer, não ativem)
- Preparação da imagem/template:
1.1. Na consola, atualizar a lista de templates (pveam update
).
1.2. Dentro do nó, clicar em “local” > “CT Templates” > “Templates”.
1.3. Pesquisar “turnkey-core”, selecionar a entrada “TurnKey Core” (atualmente na versão 16.1-1) e clicar em Download.
1.4 Após o download, a imagem deverá surgir na lista de “CT Templates”.
- Criação do contentor LXC:
2.1. Dentro do nó, clicar em “Create CT” (canto superior direito junto ao user/perfil).
2.2. Preencher os campos (o que não estiver mencionado é para deixar com as opções por defeito):
2.3.1. “General”:
a. Hostname: “docker” (ou o que lhe quiserem chamar)
b. Definir uma password (e carregar a chave SSH - se ainda não sabem o que é, deviam pesquisar e começar a usar!)
d. Desativar a opção “unpriviledged container” apenas se precisarem do contentor em modo privilegiado e souberem o que estão a fazer.
2.3.2 “Template”:
a. Storage: local (ou outra dependendo dos vossos nós)
b. Template: o que descarregaram no passo anterior
2.3.3. “Disks”:
a. Storage: local-lvm (ou outra dependendo dos vossos nós)
b. Disk size: O que precisarem. Mais ou menos 8gb + a storage para o Docker.
2.3.4. “CPU”:
a. Cores: Os que precisarem
2.3.5. “Memory”:
a. Memory: ~512mb + a memóriaque precisarem para o Docker
2.3.6. “Network tab”:
a. As vossas configurações de IP. Pessoalmente prefiro não depender do DHCP em servidores, mas para uso caseiro, DHCP com reserva também é uma opção quase aceitável.
2.3.7. “DNS”
a. As vossas definições de DNS, caso sejam diferentes do host.
2.4. Não ativar a opção “Start after created”, clicar em “Finish” e aguardar pelo “TASK OK”.
2.5. Selecionar o contentor que acabaram de criar e clicar em “Options” > “Features” e ativar a opção “keyctl”.
2.6. Configurar o Debian Turnkey Core:
2.6.1 Iniciar o contentor.
2.6.2. Fazer login com os dados definidos anteriormente.
2.6.3. Clicar em skip nos dois primeiros painéis, depois “Install” e aguardar um pouco pela instalação.
2.6.4. Control + C para sair da instalação.
2.6.5. Atualizar (apt update && apt upgrade -y
). - Instalar o Docker
3.1 Executar os seguintes comandos:
3.1.1.apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
3.1.2.curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3.1.3.echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
3.1.3.echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
3.1.4apt update
3.1.5apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
3.1.6. Verificar se o Docker se encontra a correr:systemctl status docker
- Instalar o Portainer
4.1 Executar os seguintes comandos:
4.1.1docker volume create portainer_data
4.1.2docker run -d -p 8000:8000 -p 9443:9443 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
4.1.3. Verificar se o Portainer se encontra a correrdocker ps
4.2. Aceder ao Portainer em https://ip_do_contentor:9443
4.3. Definir as credenciais quando solicitado.