آدرس

تهران، خیابان شریعتی، بالاتر از سه راه ملک، روبروی آتش نشانی

شماره تماس

۰۹۱۹۳۴۲۶۲۵۱
۰۲۱۹۱۳۰۳۴۲۴

آدرس ایمیل

info@artarasaneh.com
artarasaneh@gmail.com

تمام دستورات کاربردی Docker برای کار با Hyperledger Fabric

تمام دستورات کاربردی Docker برای کار با Hyperledger Fabric

این مقاله راهنمای جامع مدیریت شبکه Hyperledger Fabric با استفاده از دستورات Docker است؛ از مشاهده کانتینرها و لاگ‌ها تا بکاپ‌گیری و ریست کامل شبکه.

نمایش لیست کانتینرها

فقط کانتینرهای فعال را نشان می‌دهد (peer، orderer، ca، cli و غیره). ستون‌ها شامل NAMES، STATUS، PORTS هستند.

docker ps

اگر بخواهید همه ( حتی متوقف‌شده‌ها ) رو ببینید:

docker ps -a

توقف و حذف کانتینرها

توقف یک کانتینر

docker stop peer0.org1.example.com

کانتینر peer0 متوقف می‌شود.

حذف کانتینر

docker rm peer0.org1.example.com

پس از توقف، برای حذف کامل آن استفاده می‌شود.

مشاهده لاگ‌های سرویس‌ها

مشاهده لحظه‌ای لاگ‌های Peer

docker logs -f peer0.org1.example.com

 -f یعنی دنبال کردن لاگ به‌صورت زنده (follow).

فیلتر با grep

docker logs peer0.org1.example.com 2>&1 | grep "Committed block

 فقط خطوطی را نشان می‌دهد که شامل عبارت “Committed block” باشند.

ذخیره لاگ‌ها در فایل

docker logs peer0.org2.example.com > peer0_org2.log

تمام خروجی در فایل peer0_org2.log ذخیره می‌شود.

ورود به داخل یک کانتینر (exec)

ورود به Peer

docker exec -it peer0.org1.example.com bash

داخل محیط Bash کانتینر peer وارد می‌شوید، مثلاً می‌توانید فرمان زیر را اجرا کنید:

peer channel list

خروج از پییر

exit

توقف پییر

docker stop peer0.org1.example.com

ورود به CLI

docker exec -it cli bash

معمولاً از داخل CLI کانتینر، فرمان‌های chaincode نصب، instantiate و invoke اجرا می‌شوند.

بررسی وضعیت و اطلاعات

مشاهده جزییات کانتینر

docker inspect peer0.org1.example.com

 اطلاعات کامل شامل IP داخلی، شبکه، volumeها و تنظیمات.

مشاهده آدرس IP

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' peer0.org1.example.com

 فقط IP داخلی کانتینر را نشان می‌دهد (برای ارتباطات بین containerها مفید است).

مدیریت ایمیج‌ها

نمایش لیست ایمیج‌ها

docker images

حذف ایمیج خاص

docker rmi hyperledger/fabric-peer:2.5

شبکه‌ها در Fabric

مشاهده لیست شبکه‌ها

docker network ls

بررسی شبکه fabric_test

docker network inspect fabric_test

می‌بینید که کدام کانتینرها در این شبکه Docker قرار دارند.

پاکسازی محیط

حذف همه کانتینرهای متوقف‌شده

docker container prune

حذف همه ایمیج‌های بدون استفاده

docker image prune -a
docker stats

نمایش وضعیت سرویس های Fabric وقتی با docker-compose بالا آوردید.

docker-compose ps
docker-compose -f docker-compose-test-net.yaml ps

مشاهده همزمان لاگ تمام سرویس های فبریک.

docker-compose logs -f
docker-compose -f docker-compose-test-net.yaml logs -f

وارد شدن به کانتینرهایی که Bash ندارند (مثلاً Alpine).

docker exec -it <container> sh
docker exec -it orderer.example.com sh

کپی فایل به داخل کانتینر Fabric.

docker cp <file> <container>:/path
docker cp configtx.yaml cli:/opt/gopath/src/github.com/hyperledger/fabric/peer/

کپی فایل از کانتینر به سیستم میزبان.

docker cp <container>:/path ./local
docker cp peer0.org1.example.com:/var/hyperledger/production ./backup/

نمایش فرآیند های در حال اجرا در کانتینر (برای تشخیص crash).

docker top <container>
docker top peer0.org2.example.com

مشاهده تغییرات فایل سیستم کانتینر نسبت به زمان شروع.

docker diff <container>
docker diff cli

فقط لاگ های ۱۰ دقیقه اخیر را نمایش می‌دهد. 

docker logs --since 10m peer0.org1.example.com
(برای تحلیل تراکنش‌ های جدید مفید است.)

فقط ۵۰ خط آخر لاگ‌ها را نشان می‌ دهد.

docker logs --tail 50 orderer.example.com
(برای خطا های آخر شبکه.)

تنظیم برای اجرای خودکار کانتینر پس از ریبوت.

docker update --restart=always <container>
docker update --restart=always orderer.example.com

پیدا کردن مسیر داده‌ ها و ولوم‌ ها.

`docker inspect
grep Mounts`

لیست تمام volumeها (ledger و MSP معمولاً اینجا هستند).

docker volume ls
برای پاکسازی داده‌ ها استفاده می‌ شود.

حذف ledger یا stateDB خاص.

docker volume rm <volume>
docker volume rm fabric_peer0.org1.example.com

بررسی وضعیت داخلی Peer node.

docker exec -it peer0.org1.example.com peer node status
خروجی: “OK” یا خطای internal.

grep "consensus"`

`docker logs orderer.example.com 2>&1
فیلتر رخداد های مربوط به Raft consensus.

افزودن کانتینر به شبکه Fabric.

docker network connect <net> <container>
اگر chaincode جدا ساختی، با این دستور متصلش کن.

جدا کردن کانتینر از شبکه فبریک.

docker network disconnect <net> <container>
برای جداسازی موقت nodeها.

تغییر نام کانتینر بدون حذف آن.

docker rename <old> <new>
docker rename peer0.org1.example.com peer0.org1.test

ریست سریع Peer یا Orderer بدون حذف داده.

docker restart <container>
docker restart orderer.example.com

نمایش حجم مصرفی Docker (ایمیج‌ ها، ولوم‌ ها، کانتینر ها).

docker system df
برای آزادسازی فضا در سیستم.

خروجی گرفتن از یک کانتینر Fabric به‌ صورت فایل TAR.

docker export <container> -o backup.tar
docker export peer0.org1.example.com -o peer_backup.tar

بازگردانی کانتینر export شده به ایمیج جدید.

docker import backup.tar <new_image>
docker import peer_backup.tar fabric-peer-backup

حذف کامل تمام سرویس‌ ها و volume ها.

docker-compose down -v
پاکسازی ledger و داده‌ ها.

حذف همه‌ ی چیز های بلا استفاده (خطرناک ولی مفید برای reset).

docker system prune -a --volumes
برای ریست کامل محیط Fabric.

نمایش سریع وضعیت منابع همه کانتینر ها.

docker stats --no-stream
مانیتورینگ سریع بدون stream.

مانیتور زنده رخداد های Docker (شروع/توقف کانتینر).

docker events
برای تشخیص ری‌ استارت‌ های ناگهانی در شبکه.

grep "Certificate"`

`docker logs ca_org1 2>&1
بررسی صدور گواهی جدید از CA.

ریست فقط CA Server.

docker-compose restart ca_org1
زمانی که Fabric CA دچار خطا شده.

حذف تمام کانتینر ها با یک دستور.

docker rm $(docker ps -aq)
بعد از پایین آوردن شبکه.

حذف تمام ایمیج‌ ها.

docker rmi $(docker images -q)
برای تمیز کردن کامل سیستم قبل از rebuild.

بررسی سلامت سرویس Peer بدون مشاهده لاگ.

docker exec -it <peer> peer node status
docker exec -it peer0.org1.example.com peer node status

لیست کانال‌ هایی که Peer در آن عضو است.

docker exec -it <peer> peer node list
docker exec -it peer0.org1.example.com peer channel list

نمایش chaincodeهای نصب‌ شده روی peer.

docker exec -it <cli> peer chaincode list --installed
docker exec -it cli peer lifecycle chaincode queryinstalled

نمایش chaincode های فعال در شبکه.

docker exec -it <cli> peer chaincode list --instantiated
docker exec -it cli peer chaincode list --instantiated -C mychannel

grep "ENDORSED"`

`docker logs 2>&1
فیلتر تراکنش‌ های تأیید شده (endorsement).

grep "Validation"`

`docker logs 2>&1
مشاهده فرآیند اعتبار سنجی بلاک‌ ها.

grep "HostPort"`

`docker inspect
مشاهده پورت‌ های منتشر شده peer.

مانیتور لحظه‌ ای رخداد های خاص برای peer.

docker events --filter container=peer0.org1.example.com
بررسی crash یا restart خودکار.

تغییر نام کانتینر peer یا orderer.

docker rename <old_name> <new_name>
docker rename orderer.example.com orderer1.example.com

اطمینان از راه‌ اندازی خودکار کانتینر ها پس از reboot.

docker update --restart unless-stopped <container>
برای شبکه پایدار fabric.

ورود به orderer جهت مشاهده blockfile.

docker exec -it <orderer> bash
مسیر معمول: /var/hyperledger/production/orderer

دیدن لیست کانال‌ ها در Ledger.

docker exec -it <peer> ls /var/hyperledger/production/ledgersData/chains/chains
بررسی داده‌ های ذخیره‌ شده در peer.

گرفتن بکاپ کامل از ledger peer.

docker cp <peer>:/var/hyperledger/production/ledgersData ./ledger_backup
برای انتقال شبکه یا snapshot.

بازگردانی ledger به ایمیج جدید.

docker import ledger_backup.tar fabric-ledger:backup
برای آزمایش در شبکه جدید.

دیدن metadata ایمیج Fabric Peer.

docker image inspect hyperledger/fabric-peer
بررسی نسخه دقیق Fabric.

اعتبار سنجی فایل docker-compose.yaml.

docker-compose config
پیدا کردن خطا های YAML در شبکه.

اجرای فقط یک سرویس خاص.

docker-compose up -d peer0.org1.example.com
بالا آوردن مجدد یک peer خراب.

ریست مجدد فقط orderer.

docker-compose restart orderer.example.com
بدون دست زدن به بقیه سرویس‌ ها.

ریست هم‌ زمان تمام کانتینر های Fabric.

docker restart $(docker ps -q)
در صورت نیاز به refresh کلی.

grep -A5 Environment`

`docker inspect
دیدن متغیر های محیطی Fabric peer.

اطلاعات کامل سیستم Docker.

docker system info
برای بررسی سلامت daemon.

ساخت ایمیج اختصاصی برای peer با تنظیمات دلخواه.

docker build -t myfabric-peer .
مثلاً peer با plugin سفارشی.

تغییر نام ایمیج Fabric برای نسخه‌ بندی.

docker tag <image> <new_name>
docker tag hyperledger/fabric-peer:2.5 peer:v2.5-custom

انتشار ایمیج Fabric در ریپازیتوری خصوصی.

docker push <repo>/fabric-peer:v2.5
مخصوص DevOps یا CI/CD.

حذف کامل ایمیج‌ها، ولوم‌ها و شبکه.

docker-compose down --rmi all --volumes
برای ریست کلی Fabric.

grep Path`

`docker inspect
نمایش مسیر اجرای peer node.

دیدن پروسه‌ های در حال اجرا در peer.

docker exec -it <peer> ps aux
مثلاً chaincode processes.

grep "enroll"`

`docker logs <ca_container> 2>&1
بررسی عملیات enroll کاربران در CA.

بررسی DNS داخلی شبکه docker.

docker exec -it <peer> cat /etc/hosts
اطمینان از اتصال به orderer.

دیدن کانتینر های متصل به شبکه bridge.

docker network inspect bridge
بررسی ارتباط بین peer و couchdb.

فقط وضعیت (running/exited) را نشان می‌ دهد.

docker inspect --format '{{.State.Status}}' <container>
برای اسکریپت‌ های مانیتورینگ.

دیدن لاگ پایگاه داده CouchDB.

docker-compose logs couchdb
دیباگ در queryهای chaincode.

grep "GetState"`

`docker logs -f peer0.org1.example.com
فیلتر عملیات خواندن از world state.

grep "PutState"`

`docker logs -f peer0.org1.example.com
فیلتر عملیات نوشتن داده در ledger.

gzip > orderer_backup.tar.gz`

`docker export orderer.example.com
بکاپ فشرده از orderer.

بازگردانی orderer از بکاپ.

docker import orderer_backup.tar.gz fabric-orderer:restored
استفاده در شبکه تست جدید.

توقف اجباری همه سرویس‌ ها.

docker-compose kill
وقتی بعضی سرویس‌ ها قفل کرده‌ اند.

tail -n 100`

`docker logs
آخرین ۱۰۰ خط لاگ peer.

دیدن chaincode هایی که commit شده‌اند.

docker exec -it cli peer lifecycle chaincode querycommitted
بررسی صحت نصب chaincode.

نمایش ارتفاع بلاک در peer.

docker exec -it <peer> peer channel getinfo -c mychannel
خروجی شامل Height و CurrentBlockHash.

پیشنهاد ویژه: آموزش بلاکچین

پیشنهاد مطالعه: نصب و راه‌اندازی Chaincode آماده Asset Transfer Basic در هایپرلجر فابریک

اشتراک گذاری :
مریم گوهرزاد
نویسنده

مریم گوهرزاد

مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین

نظر خودتون رو با ما در میون بزارید

فیلدهای ستاره دار الزامی هستند . ایمیل شما منتشر نمیشود.

https://t.me/artarasaneh
tel:09193426251
https://wa.me/+989193426251
https://instagram.com/artarasaneh_com