⚠この記事はブログ移転前のアーカイブです

Ubuntu上でDockerを長らく使っているとクライアントとサーバーのバージョンが合わなくてdockerコマンドが使えない場合があります.ubuntuリポジトリのdocker使ってるとなることが多いようで,aptでクライアントのバージョンだけ上がってサーバーのバージョンが上がらないんですよね.

Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.23)

aptではこれを解決することが出来ないのでシェルスクリプトで解決します.Dockerを入れなおしてバージョン同期します.既存のコンテナやイメージは消えません

curl -sSL https://get.docker.com/ | sh

以上でクライアントとサーバーのバージョンを同期できます.

あとはdockerを再起動

sudo service docker restart

systemdなら

sudo systemctl restart docker

さらっとスクリプトを覗くと,Ubuntuの他,Debian系,RedHad系全般(Fedora,CentOS),OpenSUSEなども同様に対処できるようです.