方法一:利用现有开源
有一个现成的ethereum/client-go:test工具镜像。
1 下载工具
地址:https://github.com/pragmaticcoders/docker-geth-dev
将项目通过zip包下载下来,解压到将要执行docker命令的一个目录下。目录的结构与github上面上的目录结构一样
2 构建镜像
执行以下命令,构建镜像,执行的过程中需要特别注意命令最后是有一个“.”的,否则会出现错误:
[root@i-nxhzfrjz pgeth]# cd /root/pgeth/docker-geth-dev-master
[root@i-nxhzfrjz docker-geth-dev-master]# docker build -t ethereum/client-go:test .
Sending build context to Docker daemon 231.9 kB
Step 1 : FROM ethereum/client-go
---> 55b07edb552c
Step 2 : COPY rungeth.docker /usr/bin/rungeth
---> 3e485e2eff45
Removing intermediate container 510f2c24fde5
Step 3 : COPY geth.password /root/geth.password
---> 010367885703
Removing intermediate container e2b7fcd2cff8
Step 4 : COPY genesis.json /root/genesis.json
---> f6dac8264b7b
Removing intermediate container f0024ad206f2
Step 5 : COPY ethereum /root/.ethereum
---> b8caf6171332
Removing intermediate container 47970853367a
Step 6 : ENTRYPOINT /usr/bin/rungeth
---> Running in 978112e673ba
---> be7a5b4d2f48
Removing intermediate container 978112e673ba
Step 7 : EXPOSE 8110
---> Running in 3dcd44b81c24
---> 8af6494a1ada
Removing intermediate container 3dcd44b81c24
Step 8 : EXPOSE 30310
---> Running in 8cb2080288cb
---> 82ff692d638a
Removing intermediate container 8cb2080288cb
Step 9 : EXPOSE 6110
---> Running in 7fa0c0b4ef0d
---> 9f4c2abd84aa
Removing intermediate container 7fa0c0b4ef0d
Successfully built 9f4c2abd84aa
3 启动镜像
执行以下命令启动镜像:
[root@i-nxhzfrjz docker-geth-dev-master]# docker run --name geth -d -p 8110:8110 ethereum/client-go:test
/usr/bin/docker-current: Error response from daemon: Conflict. The name "/geth" is already in use by container 92f3e8b2352998069662ee551f912b30c1ea69a96e645311b2ecd553288d3654. You have to remove (or rename) tha