$ docker exec -it web /bin/bash OCI runtime exec failed: exec failed: unable to start container process: open /dev/ptmx: no such file or directory: unknown
Dockerコンテナに入ろうとしたら、上記のエラーが表示された。「何もしていない」とは言わないが、すでに何度も入っていたので、入れなくなった原因が不明である。
エラー内容をググると…
似たようなトラブルに遭遇している人はいるが、若干エラー内容が異なるのと、根本的な原因や対処法が明記されていない。
どうやらLinuxのバージョンとrunc(低レベルコンテナランタイム?)あたりが関係していそうだが、よくわからない。
dnfコマンドでruncをアップグレードしたり、コンテナを立ち上げ直すことで一応は解決しているようなので、試してみる。
https://github.com/moby/moby/issues/43969
https://qiita.com/ryome/items/ff53bf353a9f0a34262b
runcのupgrade
$ dnf upgrade runc Failed to set locale, defaulting to C.UTF-8 Last metadata expiration check: 3:14:58 ago on Tue Jan 9 23:35:18 2024. Package runc available, but not installed. No match for argument: runc Error: No packages marked for upgrade.
そもそもruncが入っていなかった。以前は問題なく動いていたので、今回はruncは無関係ということか。
ちなみに、dnf upgradeとdnf updateの違いはないそうです。yumコマンドだと違いはあるんですが、yumの後継であるdnfでは同じなんですねー
https://atmarkit.itmedia.co.jp/ait/articles/2002/06/news010.html#sample1
コンテナを再度立ち上げる
$ docker run -itd --name web web:1.0 dc5fa8c526f3810a05fd908ad0c097ea6f578bb81476c378a881f0f4b9033 $ docker exec -it web /bin/bash [root@dc5ea6c526f4 /]#
うーん、入れた…
おわりに
Jenkinsのジョブとしてコンテナ内のファイルを操作しており、その過程で何かやってしまったのが原因だと思っていますが、真相は不明です。何はともあれ、一応解決できたのでよかったです。