在本地运行Docker时通过SSH访问Corda节点外壳

时间:2019-06-04 15:04:14

标签: ssh docker-compose dockerfile corda

我使用docker-compose(Dockerform)从“ samples / cordapp-example”中设置了节点(partya,partyb,partyc,公证人)。它们都在其容器中运行corda.jar。 ssh通讯似乎有一个问题:我不断收到“连接被拒绝”错误。文档/代码似乎已过时。

errors

1 个答案:

答案 0 :(得分:0)

似乎Dockerform任务无法识别the node.conf option that enables SSH access(而且文档似乎还不完整)。解决此问题的一些步骤:

  1. 确保在Dockerform类型deployNodes中定义的每个节点(包括公证人)都具有p2pAddress(而不是p2pPort)的条目,看起来像这样:“ docker-container名称:端口号”(其中docker-container名称是每个节点文件夹的小写名称;例如partya:10004)。运行deployNodes

  2. 编辑docker-compose.yml生成的deployNodes文件,以便每个服务都公开一些其他端口(用于允许p2p通信和ssh访问节点外壳)并将它们全部绑定到主机机器-例如

version: '3'
services:
  notary:
    build: /Users/user/myapp/build/nodes/Notary
    ports:
    - 10003:10003
    - 8051:8051 # add port here
    - 9051:9051 # add port here
    - 2222:2222 # add port here
  partya:
    build: /Users/user/myapp/build/nodes/PartyA
    ports:
    - 10004:10004 # edit port
    - 8052:8052 # add port here
    - 9052:9052 # add port here
    - 2223:2223 # add port here

# keep on doing this for additional nodes
  1. 修改run-corda.sh任务生成的deployNodes文件的最后一行,使其显示为:java $JAVA_OPTIONS -jar ${CORDA_HOME}/corda.jar --sshd --sshd-port <insert-here-port-number> 2>&1(其中<insert-here-port-number>是新端口之一docker-compose.yml文件中您在服务中公开的数字)

  2. 运行docker-compose up --build -d

  3. 运行ssh localhost -p <insert-here-host-port-number> -l user1(在步骤2中定义的端口号允许ssh访问)。