Vlidatorノードを建てようとすると、1つのサーバーで複数のバリデーターノードを建てたいと思う事があります。多くのプロジェクトは何もしなくてもDockerからノード立ち上げをしてくれるようにスクリプトが準備されてますが、そのような準備が無いプロジェクトもあります。
そんな時に、自分でDocker環境をつくって、その中でノードを建てることで複数運用することができます。この記事ではそのDocker環境を作っていく手順を書いていきます。
目次
Docker環境作成
Dockerインストールの確認
サーバー環境にログインした状態からスタートします。サーバーにdockerが入っているかから確かめます。
docker --version
上記コマンドを実行すると、インストールされているDockerのバージョンが表示されます。下記のような表示がされる場合は正常にインストールされています。
Docker version 20.10.7, build f0df350
また、Dockerのデーモン状態を確認するためには、以下のコマンドを実行します。
sudo systemctl status docker
上記のコマンドを実行すると、Dockerデーモンの状態が表示されます。”Active: active (running)”と表示されていれば、Dockerデーモンが正常に動作しています。
Dcoker入って無い場合
Dockerをインストールするために、以下コマンドを実行します。
sudo apt update
sudo apt install docker.io
Dockerデーモンを起動し、自動起動するように設定します。
sudo systemctl start docker
sudo systemctl enable docker
Dockerコマンドをsudoなしで実行するために、現在のユーザーをdockerグループに追加します。
sudo usermod -aG docker $USER
Dockerを使ってUbuntsuサーバーを起動する
以下のコマンドを使用して、Dockerコンテナ内で実行するUbuntuイメージをダウンロードします。
docker pull ubuntu
Dockerのコンテナを立ち上げる時に名前を付けておくと、複数管理する時に楽なので名前を付けて立ち上げます。
docker run -it -d --name my-ubuntu-container ubuntu
上記のmy-ubuntu-container部分に任意の名前を付けます。-dオプションを付ける事で、ターミナルを閉じてもバックグラウンドで動き続けてくれます。このコマンドを打つことでDockerのコンテナ内部に入ることができたので、環境を整備してノードの立ち上げをしていきます。
docker ps -a
上記コマンドで今作成したDockerプロセスを確認しましょう。このcontainer id部分をコピーして、コンテナ内部に入っていきます。
docker attach container_id
上記コマンドを打つことで、コンテナ内部に入ります。container_id部分は先ほどコピーしたidとなります。
aptの更新を行う
aptの更新をして最新版にしておく。
apt update
プロジェクトによって違うのですが、今回はOpsideに対応するように必要なライブラリをインストールしていきます。この項目はプロジェクトによって変わります。
apt install curl jq wget
Dockerに入ったばかりはルートにいるので、ユーザーのホームディレクトリに移動してそこで作業をします。どの場所でも可能ですが、管理しやすい場所に設定するのをお勧めします。
/home/<ユーザー名>
Opsideのノードを建てる場合は、以下をDocker環境で実行する
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
以上で、DockerのUbuntu環境が出来上がります。
ターミナルを閉じる時の注意
ターミナルを使いなれて来た人はexitを叩く可能性がありますが、exitコマンドを押すとDockerのコンテナも終了してしまいます。デタッチという処理が必要でそれは以下コマンドを打ちます。
Ctr+p Ctr+q
Ctrキーを押したまま、pを押して次にqを押すことでデタッチしてDockerコンテナを動かしたまま出ることができます。
Dockerコンテナの管理
Dockerが動いているかどうかを確認するのに必要なコードは以下です。
docker ps -a
上記コマンドを押すことで、現在のDockerプロセスを確認することができます。
再度、コンテナ内に入って作業をしたい場合は、上記コマンドでcontaier id部分をコピペして、下記コマンドを打ちます。
docker attach contaier_id
contaier_id部分は数字の文字列が入ります。作業が終わった場合は上の段落でも書いてますがCtr+p Ctr+qでデタッチします。