星火节点计划 Docker 接入文档

1. 系统要求

  • 安装 Docker
  • 安装 Compose
  • 环境验证: 用户可以用如下命令验证环境,如果返回信息类似,则说明系统满足要求
    # docker-compose ps
    Name   Command   State   Ports
    ------------------------------

2. 基本用法(以geth为例)

部署星火节点,只需要编写一个配置文件,然后使用compose命令运行即可。 配置文件可以参考这个项目里面的样例,用户可以直接clone下来使用。

  • 启动
# git clone https://github.com/ethnode/compose
# cd compose
# cp docker-compose-geth.yml docker-compose.yml
# <所有的自定义内容都在 docker-compose.yml 文件中>
# <用户至少需要修改下面两条:>
#     instance: 用于在dashboard上显示你的节点名
#     contact\_details: 用于提供本节点的维护者联系方式,通常是邮箱
# docker-compose up -d

首次使用时需要下载镜像,这时需要一点时间,具体根据网络情况而定

  • 升级/降级

用户唯一需要做的就是指明目标版本,修改后重建容器节点即可。

# < 在 docker-compose.yml 文件中修改geth镜像版本 >
# docker-compose down # 停止并删除容器
# docker-compose up -d # 重新建立容器

镜像版本可以在 gethparity 这两个网页中查询

3. 高级用法(可选)

补充说明:借助docker技术,我们可以做一些定制化,同时又避免增加运维的复杂性

  • docker: 可用于标准化的交付软件应用,fsword目前负责维护三个镜像(geth、parity和stats),以简化用户使用
  • compose: 即docker-compose,这是docker系相关技术,主要用于将独立的容器关联起来
  • volume

用户建立星火节点时需要和宿主机目录进行关联,这样,当容器重建时可以保留区块链信息。在docker-compose.yml中, 我们使用 volume 设置宿主机和目标容器之间的映射

缺省的volume配置是这样的:

/data/store/parity:/root/.parity

冒号 : 前半部分是宿主机上的文件夹,用户可以根据实际情况进行设定。

注意:无论parity还是geth,节点的运行是需要较大的磁盘空间的,用户需要确保 volume 所在的文件分区足够大,目前
建议 geth 不小于20G,parity 不小于 50G ,如果是云主机,建议直接挂载一个 100G 的外部磁盘分区
  • 资源使用

某些用户的宿主机上有其它服务,这时需要限制容器所使用的资源,避免干扰其它服务,用户可以在 docker-compose.yml 中添加设置。比如,想要限制容器使用的内存大小可以用 mem_limit :

...
  ethereum:
    image: ethnode/geth:1.4.17
    volumes:
      - /data/store/geth:/root/.ethereum
    mem_limit: 4000000000
...

这个设置将限制docker容器运行内存,使之不大于4G

更多的限制方式,可以参考这里