Pacote Docker não instalável a partir do Debian, mas ok do Ubuntu [fechado]

2

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 ...)

    
por Stephane Rolland 20.09.2015 / 12:13

1 resposta

2

Tenho certeza que o Debian jessie tem um pacote docker.io , mas você deve habilitar o jessie-backports .

Para ativar jessie-backports , basta adicionar a seguinte linha no seu /etc/apt/sources.list :

deb http://http.debian.net/debian jessie-backports main

Em seguida, atualize sua base de pacotes:

$> sudo apt-get update

Agora, você deve conseguir instalar o pacote docker.io :

$> sudo apt-get install docker.io

Quando isso for feito, você pode verificar se está tudo bem com:

$> sudo docker run --rm hello-world

Você pode encontrar um resumo do que expliquei aqui em esta página .

    
por 20.09.2015 / 12:29