한국어
Profile
LeafCat

2018.04.17

Docker로 EOS Node 쉽게 실행하기

조회 수 1410 추천 수 8

 

본인 블로그에 포스팅한 내용을 가져온 내용이라 "~다." 체로 작성 되었음을 양해 부탁드립니다 :)

 

국내에서는 아직도 익숙하지 않은 기술이지만.. docker 기반의 컨테이너는 이미 전 세계적으로 거의 모든 개발사에서 쓰이고 있다. 특히나 오픈소스 SW에 있어서 github에 올라온 소스코드와 docker hub에 Push한 이미지는 기본 중에 기본이다.

이오스는 block one에서 개발하는 오픈소스이다. 역시나 Docker 컨테이너 기반으로 동장할 수 있도록 잘 구성 되어 있으며, 별도로 깃헙에 Run in docker 가이드도 제공한다.

 

eos.io git hub는 eos.io nodeos와 지갑인 keosd 컨테이너를 docker-compose로 묶어 함께 실행할 수 있도록 가이드 하고 있다.

우선 nodeos만 떼어서 별도로 구동해 보았다. docker를 사용하면 누구나 손쉽게 이오스를 가상화 컨테이너로 구동할 수 있다.

 


※ 참고

Docker 개념과 Architecture 정리 : http://www.leafcats.com/146

가상머신과 도커 : http://www.leafcats.com/152


 

1. 준비물

 

- 최소 8GB 이상의 RAM

- Docker 17.05 version 이상

( 리눅스에 docker 설치 : http://www.leafcats.com/153 )

window에서도 다양한 방법으로 docker를 사용할 수 있다. 가장 쉽게는 window용 docker를 설치해서 사용해도 될것 같지만, VMware를 사용해 8GB RAM Ubuntu VM을 구동해서 사용했다.

 

 

2. git에서 eos 소스 받아오기

 

$ git clone https://github.com/EOSIO/eos.git --recursive

 

3. Dockerfile이 있는 경로로 이동해 docker build 실행

 

$ cd eos/Docker

$ docker build . -t eosio/eos

 

4. Volume 디렉토리 생성(선택)

기본적으로 docker container는 컨테이너가 내려가면 데이터가 사라진다. 노드 데이터의 보존을 위해 Host 경로에 디렉토리 하나를 생성하고 이를 Volume으로 물고 컨테이너를 기동할 것이다.

$ mkdir /nodeos-data

 

5. config.ini 수정(선택)

 

$ vi config.ini

config.ini 파일을 수정해 eos node 구성에 필요한 각종 설정들을 변경할 수 있다.

config.ini 파일을 수정했으면, volume을 물릴 디렉토리 경로에 해당 config.ini 파일을 복사해 놓자.

우선은 별도 수정 없이 디폴트 설정대로 기동하자.

 

6. container 실행

 

$ docker run --name nodeos -v /nodeos-data:/opt/eosio/bin/data-dir -p 8888:8888 -p 9876:9876 -t eosio/eos nodeosd.sh arg1 arg2

 

eos_docker2.JPG

 

최초 New Chain 기동에 별도의 genesis.json 파일을 지정하지 않았기 때문에 구동하면서 default genesis file을 생성한다.

실제 EOS 메인넷의 genesis 순간에 쓰일 genesis.json에 포함된다는게 얼마나 큰 의미인지 세삼 느낀다.

 

eos_docker3.JPG

 

새로운 EOS New Chain이 구동 완료되었고 내 스스로가 BP가 되어 블록을 생성하기 시작했다.

순식간에 내 EOS Local Chain 런칭에 성공했다 :)

 

http://[ip addr]:8888/v1/chain/get_info 호출을 통해 chain 정보를 얻어올 수 있다.

 

docker 컨테이너를 통해 node를 기동하고, swarm이나 kubernetes와 같은 도구를 사용해 오케스트레이션 환경을 구성하면, 기본적으로 손쉬운 scale in/out이 가능하다. 더해서 서버 환경과 부하 상황에 따라 유동적으로 자원을 관리할 수 있을 뿐더러 장애 상황에도 여유로운 대응이 가능할 것이다. 

 

다음번에는 docker-compose를 사용해 eos node와 지갑을 연결해 함께 구동하는 것을 해보고, cleos 커맨드를 활용하는 것을 테스트 해 보겠다.

 

※ 출처 : 개인 블로그

Profile
5
Lv

4개의 댓글

Profile
서리
2018.04.17
정말 편하고 쉽게 잘 적어주셨네요. 감사드립니다. ^^
Profile
포르샤
2018.05.10

감사합니다. 스팀잇에서 쉘로 설치하는거 따라하다가 중간에 자꾸 놓쳤는데, docker 로 따라하니까 많이 쉽네요!

Profile
포르샤
2018.05.10

아... 이거 끄면 안되는건가요?? 끄면 다시 실행안되는줄알고 실행하려했는데...

에러뜨길래 /nodeos-data 디렉토리 지워버리고 다시 하려니까 에러나버리네요 후덜덜...

돌리는방법 몰라서 포맷하고 다시하는중이에요ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㅠㅠ

Profile
LeafCat
2018.05.11

@포르샤

OS를 끄시면 실행한 docker 컨테이너는 stop 상태로 변경됩니다. 처음부터 다시 실행하면 이미 stop상태인 컨테이너가 있으니까 에러가 나구요.

그 경우에는 docker ps -a 를 입력하시면 stop 상태인 컨테이너가 보일거에요.

그걸 다시 docker start [container ID] 해서 start 해주면 됩니다 :)

Profile
추천 수 제목 글쓴이 날짜
0 EOS.IO 질문 재식 2018.09.04
0 EOSIO DEEP DIVE 페이스북 그룹 소개 smarteasy 2018.08.21
0 EOSJS 시작하기 ogaeng 2018.08.01
0 테스트넷(정글넷) 에서 account 생성할때 램이 부족하다고 오류가 뜹니다. 1 카이쿵 2018.07.17
0 EOS 1.0.5 테스트 노드 계정 생성 에러 3 kai 2018.06.20
4 메인넷 연결을 위한 EOS seed list, config.ini, genesis.json 정보 공유 드립니다. 1 팔오사이 2018.06.11
0 메인넷의 HTTP API 접근 방법 공유 드립니다. 1 팔오사이 2018.06.11
0 Dapp 개발 입문을 해보고 싶습니다. 2 프라다 2018.06.09
0 Dapp 과 Block 과의 관계에 대한 질문요. 2 어카우 2018.05.23
2 제2회 EOS 개발자 밋업을 개최합니다. 10 profile eric 2018.05.21
0 eos 소스 분석 모임을 만들고 싶습니다 이더킬러 2018.05.18
5 EOS Commander 가 dawn4.0 지원하도록 업데이트되었습니다. 3 profile eric 2018.05.17
1 EOS Dapp을 개발해 보고 싶어요. 2 카이쿵 2018.05.12
7 BigInteger library for EOSIO profile eric 2018.05.02
8 JAVA/안드로이드 환경에서 EOS dApp/지갑 개발 4 profile eric 2018.05.02
8 Docker로 EOS Node 쉽게 실행하기 4 profile LeafCat 2018.04.17
0 cleos wallet create error 2 profile veramonte 2018.04.10
0 EOS Dawn 3를 설치하면서... 4 profile 변견 2018.04.09
7 #1. EOS.IO 스마트컨트랙트 개발을 위한 가상 머신 설치하기 by nsjames 1 profile 서리 2018.04.09
5 EOS Source를 분석하는 모임을 만들고자 합니다. 10 profile 변견 2018.04.08
5 웹 어셈블리의 오해와 진실... 5 Wysam 2018.03.29
1 Dapp 개발 난이도..? 1 팔오사이 2018.03.28
3 EOS기반 Dapp 개발을 위한 문서 및 EOS 개발자 텔레그램 방 Link 2 팔오사이 2018.03.28
0 EOS에서 Smart Contract를 개발 할때...??? 3 profile 변견 2018.03.28
9 EOS와 Ethereum의 차이점 7 profile 변견 2018.03.28
0 좋네요 오스신 2018.03.26
0 정말 필요했던 부분이네요...^^ profile 변견 2018.03.26
1 오 개발 소모임이군요 profile 스트라티스 2018.03.26
서버에 요청 중입니다. 잠시만 기다려 주십시오...