15

This may be the stupid question. Does Hyperledger Fabric require Docker for its operations.

I'm just wondering that Docker is needed only if we need to run Fabric peer, orderer or couchDB as virtual machine in the same physical machine. I think Docker might not be necessary if we install those sofwares (peer, order, couchDB, etc) natively on the separate and same server.

Thank you.

  • I'm voting to close this question as off-topic because it is just a case of missing or not reading it in the documentation. – Andy Shinn Jan 03 '18 at 02:29
  • No. no. I have read the documentation. I'm just confusing. Please help me to have clear view between Hyperledger and Docker. – Kyaw Zin Htoo Naing Jan 03 '18 at 02:37
  • In theory, no, Docker wouldn't be needed if the same processes were run on the same host and the necessary manual changes were made to configuration to connect them all together. But this isn't how the software is distributed and you wouldn't likely get support for it. – Andy Shinn Jan 03 '18 at 02:43
  • Thank you for your comment. I really appreciate. Let me confirm one thing. If I natively(from the binary) install peer, orderer on separate machine(host), Docker wouldn't be needed. Right? I am not refusing to use Docker. I just want to know when it is need or when it is not. Thank you. – Kyaw Zin Htoo Naing Jan 03 '18 at 02:54

4 Answers4

15

Just so this point does not go unnoticed, while you do not need to run the peer in a Docker container, endorsing peers (the ones which run chaincode) need access to a Docker daemon (ideally on the same host). Chaincode is currently only deployed via Docker containers.

Gari Singh
  • 7,804
  • 2
  • 12
  • 31
5

The question as to whether Docker is required to run a peer, orderer, fabric-ca, etc. depends on what effort you are willing to expend.

The Hyperledger Fabric community publishes stable, tested Docker images for X86, PowerPC and s390 (mainframe) architectures for each of its releases. These images are based on Ubuntu.

To use the Hyperledger Fabric published release images, you need Docker and some form of orchestration support. For sample use cases, we provide some simple Docker Compose definitions. Hyperledger Cello and other provisioning platforms such as the IBM sandbox, provide kubernetes helm charts.

It is possible to build the binaries outside of their Docker images without modification of the source. However, if you wish to build for an alternative OS (e.g. Windows, RHEL or CENTOS, etc) then you will need to modify the build process. However, it can and has been done. Suggest you reach out to the hyperledger-fabric@lists.hyperledger.org mailing list to see if any in the community that have built for alternative deployment will share their work.

christo4ferris
  • 3,951
  • 1
  • 15
  • 30
1

Yes, it is the second heading on the prerequisites page at http://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html

Docker and Docker Compose

Andy Shinn
  • 19,843
  • 6
  • 62
  • 80
1

Starting HLF 2.0 things have changed. According to documentation, chaincode can be in 'external containers' also.

https://hyperledger-fabric.readthedocs.io/en/release-2.0/cc_launcher.html

Siva
  • 433
  • 1
  • 7