Debian jessie用の公式Dockerパッケージはありません。バックポートがあり、インストールしたが起動すると、コンテナの実行などの重要なタスクにエラーが発生します。
インターネットに提案されたソリューションがあります(Debian dockerのインストールに関して):deb https://get.docker.com/ubuntu docker main
resources.listに追加した後:
sudo apt-get update
sudo apt-get install lxc-docker
Dockerは、パッケージがUbuntuとDebianで動作することを保証するようです(コメントで読みました)。
実際、このインストールは私のUbuntu 14.04ノートブックで正常に動作し、dockerはコンテナを正しく実行します。
ただし、Debian jessieを使用してサーバー上で同じ操作を試みると、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
また、古いdockerパッケージの名前であるdocker.ioパッケージ名を試しました。
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
何が間違っているのか知っていますか?
これは私が置いたdocker.listファイルです/etc/apt/sources.list.d
。
deb https://get.docker.com/ubuntu docker main
権限は正常に見えます。
$ ls -l /etc/apt/sources.list.d/docker.list
-rw-r--r-- 1 root root 46 Sep 20 17:26 docker.list
提案したように、docker.ioバックポートパッケージを再インストールしましたが、エラーが発生しました。
コンテナを起動できません。
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?
sudo apt-get remove
しかし、もっと悪いことは、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)
そしてパッケージは決して削除されません。それで、昨日Debianを再インストールし、Docker指向のソリューションにチャンスを与えることにしました。 deb https://get.docker.com/ubuntu docker main
これは次の質問に関連している可能性があります。dockerが機能したことがないと削除できません。
上記のリンクのおかげで、docker.ioパッケージの削除を妨げる原因は、アンインストール前のスクリプトにあります。
/var/lib/dpkg/info/docker.io.prerm
私はそれを修正して、docker stop
次のことをしたい3行をコメントアウトしました。
# Automatically added by dh_installinit
#if [ -x "/etc/init.d/docker" ] && [ "$1" = remove ]; then
# invoke-rc.d docker stop || exit $?
#fi
そしてパッケージもきれいに削除されました。 (このため、昨日Debianを再インストールするのは本当に野蛮でした...)
ベストアンサー1
Debian jessie用のパッケージがあると確信していますdocker.io
が、それを有効にする必要がありますjessie-backports
。
有効にするには、jessie-backports
ファイルに次の行を追加します/etc/apt/sources.list
。
deb http://http.debian.net/debian jessie-backports main
その後、パッケージストアを更新します。
$> sudo apt-get update
これでパッケージをインストールできますdocker.io
。
$> sudo apt-get install docker.io
これを完了したら、次のことですべてが正しく機能していることを確認できます。
$> sudo docker run --rm hello-world
私が説明した内容の概要はここで確認できます。このページ。