Dockerのイメージにlatestを使用しないこと

2022年9月28日

DockerfileでもDocker-compose.ymlでも良いのだが、イメージの指定にバージョンをつかない、あるいはlatestを使うのは避けるべき。

実際のバージョンがわからない

latestを使うと、pullされるイメージは「最新のもの」になるのだが、取得したイメージを見ても、実際のバージョンはわからない。

これについての議論がFinding the actual version of latest version of docker imageにある。

更新時に問題になることがある

実際にNextCloudの更新で問題になったのだが、NextCloudでは、二つ以上のメジャーバージョン更新はサポートしていない。実際に22から24にあげようとしたが、途中でエラーになってしまった。正しいやり方としては、22から23に上げ、その後に23から24に上げることだ。

もしlatestを使っていて、更新しようとしてpullしてしまうと、この問題が発生してしまう。

サーバ替えの時に問題になることがある

VPSサーバのイメージまるごと持っていけば問題無いのだが、VPSサーバ会社間ではそれができない。したがって、dockerで構築された環境をまるごと持っていくことになるのだが、その際にわざわざDocker内に保持しているイメージまで持ってはいかない。

もし、以前のDocker環境での構築時のlatestと以降時のlatestが異なってしまうと、やはり同じ問題が発生してしまう。