fabric删除链码对应的docker容器

Posted sanqima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fabric删除链码对应的docker容器相关的知识,希望对你有一定的参考价值。

    在fabric中链码是放在docker容器里运行的,每一个链码对应一个容器。下面介绍如何删除链码对应的docker容器。

方法一

1、查看docker容器列表

docker images
图(1) 以mycc开头的链码容器有2个: mycc,mycc2

2、删除链码对应的容器

    由图(1)可知,有2个链码:mycc、mycc2,它们都在peer节点里,则命令如下:

2.1 获取IMAGE ID

docker images | awk '($1 ~ /dev-peer.*.mycc.*/) {print $3}'
图(2) 获取mycc*链码对应的Image ID

2.2 删除链码容器

docker rmi -f $(docker images | awk '($1 ~ /dev-peer.*.mycc.*/) {print $3}')
图(3) mycc*链码删除成功

方法二

    有时候,直接通过docker rmi f Image_ID无法删除docker容器,这时候,就需要进入/var/lib/docker/image/overlay2/imagedb/content/sha256目录,根据Image_ID来删除对应的容器文件了。

3.1 进入sha256目录

cd /var/lib/docker/image/overlay2/imagedb/content/sha256

3.2 根据IMAGE ID删除指定的容器文件

    这里以删除mycc链码容器:058449ea1a6d为例进行说明,在sha256/目录,找到以058449ea1a6d开头的文件夹,如图(2)所示,该链码容器的文件夹完整名称为:058449ea1a6df41b5edd4a0edf56cbc35f471ab10fbb9c930c137ba1e5df7796

图(2) 在sha256/目录里,找到以IMAGE ID开头的文件夹

    删除058449ea1a6d容器的命令如下:

cd /var/lib/docker/image/overlay2/imagedb/content/sha256
rm -rf 058449ea1a6d*

    效果如下:

图(3) 在sha256/目录,删除链码容器成功

以上是关于fabric删除链码对应的docker容器的主要内容,如果未能解决你的问题,请参考以下文章

Fabric系列 - 链码- 外部链码(v2.0)

WDK学习笔记_docker容器客户端_fabric-go-sdk

HyperLeger Fabric开发——HyperLeger Fabric链码开发

Hyperledger Fabric 智能合约开发 链码

Fabric1.4:链码管理与测试

hyperledger fabric链码开发(Chaincode for Developers)