Um contentor é um programa a correr dentro do seu próprio espaço, com tudo o que precisa já dentro de uma imagem. Vive enquanto o seu processo principal viver: se o programa termina ou falha, o contentor pára. Quase tudo o que corre mal ao início resolve-se com dois comandos, docker ps -a e docker logs. Este artigo pressupõe o Docker instalado num VPS: veja como instalar.
Arrancar um servidor web de ensaio
| 1 |
Arranque o contentor: docker run -d --name teste -p 8080:80 nginxO -d deixa-o em segundo plano, o --name dá-lhe um nome, e o -p 8080:80 liga a porta 8080 do servidor à porta 80 do contentor. A imagem nginx é descarregada à primeira.
|
|
| 2 |
Veja se está de pé: docker psMostra só os que estão a correr. Com docker ps -a mostra também os que pararam.
|
|
| 3 |
Peça a página, no próprio servidor: curl http://localhost:8080. Vem o HTML de boas-vindas do nginx.
|
|
| 4 |
Veja os registos: docker logs teste, ou com -f para ficar a seguir em directo, e --tail 100 para só as últimas linhas.
|
|
| 5 |
Pare e apague: docker stop teste docker rm testeParar não apaga. Enquanto o contentor existir, o nome teste está ocupado.
|
|
Quando não arranca: o que o sintoma quer dizer
| O que vê |
O que costuma ser |
O que fazer |
| Estado «Exited (0)» |
O programa acabou normalmente. Um contentor sem nada para fazer termina logo. |
Se esperava um serviço, a imagem ou o comando não é de um serviço. Leia a página da imagem. |
| Estado «Exited (1)» |
O programa falhou ao arrancar: ficheiro em falta, variável não definida, erro de configuração. |
docker logs nome: a última linha costuma dizer porquê. |
| Estado «Exited (137)» |
O contentor foi morto à força. Muitas vezes é falta de memória do servidor. |
free -h e veja se o VPS tem memória livre. |
| «Restarting» |
Falha e volta a arrancar, em ciclo, por causa da política de reinício. |
Os registos, como em Exited (1). Pare-o primeiro: docker stop nome. |
| «port is already allocated» |
A porta que pediu já está a ser usada por outra coisa. |
sudo ss -tlnp mostra quem a tem. Escolha outra porta do lado esquerdo. |
| «pull access denied» ou «not found» |
Nome da imagem mal escrito, ou imagem privada sem sessão iniciada. |
Confira o nome em hub.docker.com. |
«permission denied» no docker.sock |
O seu utilizador não está no grupo docker. |
Use sudo, ou veja o fim do artigo de instalação. |
Para olhar por dentro de um contentor que está a correr: docker exec -it teste shAbre uma linha de comandos lá dentro. Saia com exit. Para ver a configuração completa (portas, volumes, variáveis): docker inspect teste.
|
O que está dentro de um contentor desaparece com ele. Se apagar o contentor, os ficheiros que o programa criou lá dentro vão-se, a menos que tenha ligado uma pasta ou um volume. Antes de pôr dados importantes num contentor, leia Docker Compose: uma aplicação com a sua base de dados.
|
|
Publicar uma porta abre-a ao mundo. Com -p 8080:80 qualquer pessoa chega lá, e o Docker passa por cima das regras do ufw. Para ensaios só no servidor, use -p 127.0.0.1:8080:80. Veja portas e firewall num VPS.
|
|
O servidor não responde, ou o SSH deixou de entrar? Isso é connosco: diga-nos o que vê e a hora a que começou. A aplicação dentro do contentor é sua, e o guia acima ajuda a descobrir o que a faz falhar.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupom) Ver planos |