管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Dockerをバージョンアップしたら既存のコンテナで「Unknown runtime specified docker-runc」が発生したので対処したメモ

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   ...

参考にしました