以下の内容はhttps://tech.virtualtech.jp/entry/2025/03/13/142753より取得しました。


Ubuntuで動くDockerが壊れたと思った

とあるUbuntuインスタンスのソフトウェアメンテナンスをしたんですよ。

$ sudo apt-get -u upgrade

そのあとDockerで動いているサービスがちゃんと動いているか確認するために、コマンドを実行したらこんなエラーが表示されました。

$ docker-compose ps
ERROR: client version 1.22 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version

Ubuntuにはdocker.ioというパッケージとdocker-composeというパッケージが共にdebパッケージで提供されていて、docker.ioパッケージが新しくなったけど、dokcer-composeパッケージは更新されていないというオチなんかもしれません。

とりあえずリポジトリーに存在する古いバージョンを探してみます。

$ sudo apt-get -u install -y apt-show-versions 

$ sudo apt-show-versions -a -p docker.io
docker.io:amd64 26.1.3-0ubuntu1~20.04.1 install ok installed
docker.io:amd64 19.03.8-0ubuntu1          focal          ja.archive.ubuntu.com
docker.io:amd64 20.10.21-0ubuntu1~20.04.2 focal-security ja.archive.ubuntu.com
docker.io:amd64 26.1.3-0ubuntu1~20.04.1   focal-updates  ja.archive.ubuntu.com
docker.io:amd64/focal-updates 26.1.3-0ubuntu1~20.04.1 uptodate

うわっ!? Ubuntu 20.04だ... 早くバージョンアップしないと。

docker-composeも確認しましたが、これより新しいバージョンは提供されていませんでした。debパッケージに拘らなければ外部から持ってくる手もありますが、いずれこの環境はメンテナンスする予定ですのでdocker.ioをダウングレードする対応にします。

$ sudo apt-show-versions -a -p docker-compose 
docker-compose:all 1.25.0-1 install ok installed
docker-compose:all 1.25.0-1 focal ja.archive.ubuntu.com
docker-compose:all/focal 1.25.0-1 uptodate

確認して、focal-securityにあるバージョン20.10.21-0ubuntu1~20.04.2にします。

$ sudo apt-get install docker.io=20.10.21-0ubuntu1~20.04.2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  aufs-tools cgroupfs-mount | cgroup-lite debootstrap docker-doc rinse zfs-fuse | zfsutils
The following packages will be DOWNGRADED:
  docker.io
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 3 not upgraded.
Need to get 30.3 MB of archives.
After this operation, 16.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

問題なくコマンドが実行できました。

$ docker-compose ps
         Name                       Command               State                    Ports                  
----------------------------------------------------------------------------------------------------------
hoge1   dumb-init /usr/local/tomca ...   Up      0.0.0.0:8080->8080/tcp,:::8080->8080/tcp
huga1    docker-entrypoint.sh postgres    Up      5432/tcp         

Dockerでアプリを動かしているのでOSやバージョン、パッケージバージョンを考えなくても良くなったので楽になったとはいえ、このような罠はあるからこういうことも考慮したメンテナンスの自動化はどうしたらいいかなあなどと考える今日この頃。

Ubuntu 20.04標準サポート終了まであと1か月




以上の内容はhttps://tech.virtualtech.jp/entry/2025/03/13/142753より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14