Não há nenhum pacote oficial do Docker para o Debian jessie.
Há um backport e eu o instalei, mas, quando iniciado, ele emitia erros para tarefas cruciais, como a execução de um contêiner.
Existe uma solução proposta na internet que diz (sobre a instalação do docker Debian):
adicione deb https://get.docker.com/ubuntu docker main
ao arquivo sources.list
então:
sudo apt-get update
sudo apt-get install lxc-docker
Parece (eu li em um comentário) Docker garante que seu pacote está rodando tanto no Ubuntu quanto no Debian.
Na verdade, essa instalação teve um bom desempenho no meu laptop Ubuntu 14.04, e o docker está executando muito bem os contêineres.
No entanto, ao tentar a mesma coisa no servidor com o Debian jessie eu simplesmente não consigo instalar o docker:
myuser@srv:~$ sudo apt-get install lxc-docker
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package lxc-docker
Eu também tentei com o nome do pacote docker.io, que é o nome do pacote docker obsoleto:
myuser@srv:~$ sudo apt-get install docker.io
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package docker.io is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'docker.io' has no installation candidate
Alguma ideia do que poderia estar errado?
Aqui está o arquivo docker.list que eu coloquei em /etc/apt/sources.list.d
:
deb https://get.docker.com/ubuntu docker main
As permissões parecem normais:
$ ls -l /etc/apt/sources.list.d/docker.list
-rw-r--r-- 1 root root 46 Sep 20 17:26 docker.list
Como sugerido, instalei (novamente) o pacote backport docker.io e ele me deu os erros:
Impossível iniciar um contêiner:
myuser@srv:/etc/apt/sources.list.d$ sudo docker run --rm hello-world
FATA[0000] Post http:///var/run/docker.sock/v1.18/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Mas pior, agora é impossível sudo apt-get remove
o pacote backport do docker.io:
Removing docker.io (1.6.2~dfsg1-1~bpo8+1) ...
[....] Stopping Docker: dockerstart-stop-daemon: warning: failed to kill 23321: No such process
1 pids were not killed
No process in pidfile '/var/run/docker-ssd.pid' found running; none killed.
invoke-rc.d: initscript docker, action "stop" failed.
dpkg: error processing package docker.io (--remove):
subprocess installed pre-removal script returned error exit status 1
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
docker.io
E: Sub-process /usr/bin/dpkg returned an error code (1)
e o pacote nunca é removido.
Essa foi a razão pela qual eu reinstalei o debian ontem e optei por dar uma chance à solução orientada ao docker usando deb https://get.docker.com/ubuntu docker main
Isso pode estar relacionado a esse problema: o docker não pode ser desinstalado se nunca funcionou
Graças ao link acima, o culpado que proíbe a remoção do pacote docker.io está no script de pré-remoção:
/var/lib/dpkg/info/docker.io.prerm
Eu o modifiquei, comentando as 3 linhas que tentam fazer o docker stop
assim:
# Automatically added by dh_installinit
#if [ -x "/etc/init.d/docker" ] && [ "$1" = remove ]; then
# invoke-rc.d docker stop || exit $?
#fi
E o pacote foi removido bem. (Eu tenho sido realmente um bárbaro reinstalando o Debian por causa disso ontem ...)