【保存版】GethをDockerの仮想環境で構築しよう!(Ethereum勉強用)
5月17日にBlockBaseのブロックチェーン勉強会に参加しました。Dockerを用いてGethの仮想環境を構築することができましたので、こちらに記します。
①Gethのインストール
まずはGethのインストールはこちらから。
ちなみに、Gethの簡単な説明はこちらです。
私はWindowsなので、こちらからダウンロードしました。
インストールしたら、正常に出来ているかをコマンドプロンプトから確認しましょう。(コマンドプロンプトの立ち上げは検索窓から「cmd」で出てきます。)
下のように「geth」と入力してください。
最初の行に「Starting Geth on Ethereum mainnet」と出てきています。
イーサリアムのメインネットとつながっていますね。
②Dockerのインストール
次はDockerをインストールします。
私はこちらからダウンロードしました。
ダウンロードが終わったら、きちんと出来ているか、コマンドプロンプトで確認してみましょう。
下のように「docker --version」と打ってみましょう。バージョンが出てきたらOKです。
ちなみに「docker」と入力するとこんな感じになります。
入力は下の形式で行うようです。
docker [OPTIONS] COMMAND
何を知りたいかわからなくなったら、この画面に戻って調べれば良さそうですね。
③「ethereum/client-go」をDockerに入れる
次は、Dockerでgethの動きを見てみましょう。
Docker上で動く、Gethの仮想環境が、こちらの『ethererum/client-go』になります。
ピンクの部分にも「Container」とあり、「Container」とはDBサーバーやWebサーバーが動く仮想空間となります。
この『ethereum/client-go』を使用するためのコマンドが「pull」です。
Pull an image or a repository from a registry
①Image もしくは
②repository(容器・保管所) ←今回はこっち
をレジストリから引っ張ってくる
という意味です。
ちなみに『レジストリ』の意味はこちらわかりやすかったです。
https://wa3.i-3-i.info/word113.html
レジストリとは『Windowsやソフトウェアの情報が保存される、Windowsパソコンの中にあるデータベースのこと』
とのことです。
実際に『pull』コマンドを使ってみましょう。
成功しました!
ちなみに下のImageは『Container』を立ち上げるのに必要な設定やコマンドがひとまとめになったものです。
Image is up to date(最新になった)
ということなので、「images」コマンドで確認してみましょう。
このように「images」コマンドを使うと「images」がリスト化されるようですね。コマンドを打ってみると。
このように表示されました。
その他にも
①Repository ⇒ ethereum/client-go
②Image ID ⇒ 255...
などの情報が確認できます。
④コンテナでコマンドを実行する
コンテナが入ったので、実際にこの仮想環境を動かしてみようと思います。
公式のこちらが参考になります。
こちらがDockerのクイックスタートになります。
「alice」と書いてある部分はご自身のパソコンの名前にしてください。(私の場合は「ytaka」)
「--name」の「ethereum-node」の部分は任意の名前になります。また、注意点として、作成時にはこのコマンドは改行せずに(改行を抜いて)つなげて貼り付けてください。↓こんな感じです。
docker run -d --name ethereum-node -v /Users/ytaka/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go
ちなみに、入れてみると。。
エラーになってしまいました。
Conflict. The container name "/ethereum-node" is already in use by container
⇒「ethereum-node」の名前が既に使われている。
先ほど同じ名前で作ったのを忘れていました。
気を取り直して、少し名前を変えてやってみます。
docker run -d --name new-ethereum-node -v /Users/ytaka/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go
できました!
番号もできております。
こちらがContainerの中で作られる仮想環境の番号になります。
Dockerのインストールしたアプリを見てみると
このように、今作ったサーバーが立ち上がっていることがわかります。
中をのぞいてみると
このように「Ethereum」の「mainnet」のサーバーが立ち上がっています。
では、せっかくなので、「Ethereum」のテストネットである「Rinkeby」でも立ち上げてみましょう。
docker run -d --name new-ethereum-r-node -v /Users/ytaka/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go --rinkeby
先ほどと変わったのは末尾の部分です。
コマンドプロンプトもうまくいきました。
Dockerも見てみると
このように「Rinkeby testnet」として立ち上がっています。
いかがでしたでしょうか。
これでGethをDockerの仮想環境で構築する方法についての説明を終了致します。
最後に、この勉強会を主催したBlockBaseにつきまして、興味のある方はぜひこちらからご確認ください。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊