linux搭建eos节点,Docker上五分钟搭建EOS开发环境

Docker是个什么,简单说一下。它本质是在某个系统,如Linux上,跑的一个进程。但它做了一个轻量级的虚拟化,隔离出了类似虚拟机一样的独立的网络,CPU,所以可以直接把它当个虚拟机看。

Docker进程运行所在的操作系统我们一般叫作宿主机。Docker可以运行多个虚拟机,对于这个虚拟机,一般称作容器。容器或者说虚拟机内运行的也是一个操作系统,在这个系统上把软件安装好,打成一个压缩包,我们就称为镜像。

方便理解的话,Docker可以当成一个虚拟机,镜像就是别人搞好的一个虚拟机文件,拿过来导入就能用了。

EOS官方在文档中强调,对于Docker这种可以跨平台,能快速运行的将优先支持。在EOS的源码下有一个Docker目录,内有对Docker的相关支持说明。地址在这里。本文将结合官方文档docker-quickstart,对在Docker跑起来一个开发环境进行说明,略有改动。

1. 安装Docker

需要Docker17.05或更高版本

安装可以参考前面的一篇安装Docker的文章。

2. 五分钟开发环境搭建

注意:这是搭建开发环境,切勿用于正式环境。搭建时,我们直接使用官方做好的镜像,如需自行编译,请参考官方的Docker文档,并注意硬件配置。

docker run --rm --name eosio -d -p 8888:8888 -p 9876:9876 -v /tmp/work:/work -v /tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev /bin/bash -c "nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::wallet_plugin --plugin eosio::producer_plugin --plugin eosio::history_plugin --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --plugin eosio::http_plugin -d /mnt/dev/data --config-dir /mnt/dev/config --http-server-address=0.0.0.0:8888 --access-control-allow-origin=* --contracts-console --http-validate-host=false"

命令说明:

命令

简单说明

docker run

使用Docker运行一个镜像,如果镜像在本地不存在,则自动去hub.docker.com进行下载。

--rm

docker run的一个参数。docker默认在退出时,会保存容器的文件系统状态。这个参数,在容器退出时自动清理文件系统,注意,显式加载的卷并不会被清理。Docker官方对--rm参数的说明。

--name eosio

将容器取名为eosio。

-d

后台运行容器。

-p 8888:8888 -p 9876:9876

将容器中的8888、9876端口曝露出来,并映射到docker的宿主机。两个端口分别是钱包、节点的两个服务端口。

-v /tmp/work:/work -v /tmp/eosio/data:/mnt/dev/data -v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev

声明了三个持久化的卷(volumn),将Docker宿主机上的对应目录,映射到容器的对应目录下,类似mount操作。注意:显式声明的卷,在容器退出时并不出清理,也就是说这三个卷将永远存在。

eosio/eos-dev

指定运行的镜像,这个是eos官方维护的。如果镜像不在本地,会自动从hub.docker.com的官方镜像站查找,并自动下载。

/bin/bash -c

启动镜像后,要运行的命令。其实就是用bash启动eosio的相关命令。

上述命令运行完成后,使用

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

70ecc7712396 eosio/eos-dev "/bin/bash -c 'nodeo…" 14 seconds ago Up 4 seconds 0.0.0.0:8888->8888/tcp, 0.0.0.0:9876->9876/tcp eosio

能看到eosio容器已经启动起来了。

官方有个建议是对cleos命令做个别名

alias cleos='docker exec -it eosio /opt/eosio/bin/cleos -u http://0.0.0.0:8888 --wallet-url http://0.0.0.0:8888'

这样就可以在本地运行cleos了

做为开发,可使用下面这个命令

$ docker exec -it eosio /bin/bash

直接连上容器。连上容器后,/contracts目录下,有编译好的相关的合约。配置及区块数据在/mnt/dev目录下。也能在不创建别名的情况下,运行cleos等命令了。

3. Hello World

在宿主机的浏览器(还记得曝露端口的命令吧)输入http://localhost:8888/v1/chain/get_info,应该能看到

{

"server_version": "40a20769",

"chain_id": "cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f",

"head_block_num": 1392564,

"last_irreversible_block_num": 1392563,

"last_irreversible_block_id": "00153fb32fb13b864ae95204938508b9be7aa4272938a96c9ba7cac2f05c581f",

"head_block_id": "00153fb4074fe3b191d39f86c83dec740d2d2541fc846a1fc8bb4b3e99597b3c",

"head_block_time": "2018-08-12T00:40:47.000",

"head_block_producer": "eosio",

"virtual_block_cpu_limit": 200000000,

"virtual_block_net_limit": 1048576000,

"block_cpu_limit": 199900,

"block_net_limit": 1048576

}

不行的话将localhost替换为宿主机的ip。

(全文完)

处于某些特定的环境下,可以看到评论框,欢迎留言交流^_^。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值