ラベル docker の投稿を表示しています。 すべての投稿を表示
ラベル docker の投稿を表示しています。 すべての投稿を表示

2020年3月29日日曜日

dockerのトラブルシューティングメモ

dockerイメージを更新してリスタートしようとしたら、以下のエラーが発生しました。
ERROR: for xxx  You cannot remove a running container b0f9049739ac6c4b178e673d25ac295a6291f3d957905148e98e35cce1571163. Stop the container before attempting removal or use -f
どうやら前のdockerが残ってて停止できないようです。「docker ps」で確認したら、2つが動いてます。
$ docker ps
CONTAINER ID        IMAGE                                                                                    COMMAND                  CREATED             STATUS                  PORTS                                         NAMES
b0f9049739ac        xxxx:dev-53e52afc20cc7c382eb221a9db742ccc618dd227   "/opt/docker/bin/i..."   3 minutes ago       Up 3 minutes                                                          xxxx
ff76c3ef8849        xxxx:dev-8d5447725fd6b306ed91a5cd41e720b343e219dd   "/opt/docker/bin/i..."   26 hours ago        Up 26 hours                                                           ff76c3ef8849_xxxx
もう強制削除しかないので、-fをつけて強制削除してみました。
# docker rm -f <コンテナID>
docker rm -f b0f9049739ac
docker rm -f ff76c3ef8849
これで起動できるだろうと思って、「docker up -d」をうったら、今度更にエラーが出た。。。。(汗!!!)
$ docker-compose up -d
Creating xxxx ... error
 
ERROR: for xxxx  Cannot start service xxxx: service endpoint with name xxxx already exists
古いコンテナのEndpointが残っています。
エンドポイントを調べたいですが、ネットワーク名は分からない、一覧を出してみます。
#docker network ls
NETWORK ID          NAME                 DRIVER              SCOPE
62d8386207b3        bridge               bridge              local
9d62029db27f        host                 host                local
8dd261f6a3cf        none                 null                local
hostが一番あってそうなので、中身をチェックしてみることにしました。
$ docker network inspect host
[
    {
        "Name""host",
        "Id""9d62029db27ffc982d0bedaebe2ba6de3b84c1f57ecefbf74c6228a9f5436c86",
        "Created""2018-05-21T19:36:40.649319874+09:00",
        "Scope""local",
        "Driver""host",
        "EnableIPv6": false,
        "IPAM": {
            "Driver""default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "19c8189cbc9cc7411236bda85e3a085ea8a1018496b95f06a65e3139ab89361b": {
                "Name""xxxx",
                "EndpointID""b4f737bbf643f8da34f16718cfac0866754de3f72363cf9034a7d4f102ab9fa5",
                "MacAddress""",
                "IPv4Address""",
                "IPv6Address"""
            },
            (略)
        },
        "Options": {},
        "Labels": {}
    }
]
見事に古いコンテナを見つけました。削除します。
#docker network disconnect -f <network name> <container name>
docker network disconnect -f host xxxx
もう一回「docker up -d」をうったら、無事に復旧できました。