Dockerfileをビルドしたところ「invalid reference format」が表示されました。どうやらDockerが古いためらしく、Dockerをバージョンアップしました。その結果、既存のコンテナで「Unknown runtime specified docker-runc」が発生したので対処したメモです。
確認環境
CentOS Linux release 7.9.2009 (Core) docker-ce (旧)1.13.1 (新)20.10.3
発生事象
# Dockerバージョンアップ後に既存のコンテナを動かしてみるとエラー [hoge@localhost ~]$ docker start 7687c4704af7 Error response from daemon: Unknown runtime specified docker-runc Error: failed to start containers: 7687c4704af7
対処(hostconfig.jsonの"Runtime"を"runc"に変更する)
ランタイムを調べる
[hoge@localhost ~]$ docker inspect 7687c4704af7 | grep -i runtime "Runtime": "docker-runc",
hostconfig.jsonを直すため、Idを調査
[hoge@localhost ~]$ docker inspect 7687c4704af7 | grep -i id "Id": "7687c4704af7ef70893f3fc9bf6025263ace76286c67425db3bc2163795eff11",
hostconfig.jsonのあるフォルダへ移動(Idがディレクトリ名になっている)
[root@localhost hoge]# cd /var/lib/docker/containers/7687c4704af7ef70893f3fc9bf6025263ace76286c67425db3bc2163795eff11
hostconfig.jsonを修正
"Runtime":"docker-runc" ↓ "Runtime":"runc",
dockerのリスタート
[root@localhost hoge]# systemctl restart docker
再度コンテナをstartする->OK
[hoge@localhost ~]$ docker start 7687c4704af7 7687c4704af7 [hoge@localhost ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7687c4704af7 78809a7e5664 "/usr/bin/docker-ent…" 3 months ago Up 15 seconds ...
参考にしました