Nodes/cosmos/docker

cosmos

Cosmos Hub Docker 노드 가이드

3분 읽기 · docker

list목차(6)

Cosmos Hub Docker 노드 가이드

Cosmos Hub(gaiad)는 공식 Docker 이미지를 제공하지 않지만, 공식 릴리스 바이너리를 베이스 이미지에 올려 쉽게 컨테이너화할 수 있습니다. 프로덕션 Full 노드는 보통 호스트 설치를 사용합니다.

간단한 docker-compose 예시

# docker-compose.yml
services:
  gaiad:
    image: ghcr.io/cosmos/gaia:v21.0.0
    container_name: cosmos-gaiad
    restart: unless-stopped
    ports:
      - "26657:26657"   # Tendermint RPC
      - "26656:26656"   # P2P
      - "1317:1317"     # Cosmos REST API
      - "9090:9090"     # gRPC
    volumes:
      - ./data:/root/.gaia
    command:
      - start
      - --home=/root/.gaia

최초 초기화

# genesis/초기 설정 (호스트에서 한 번 실행)
docker run --rm -v $(pwd)/data:/root/.gaia \
  ghcr.io/cosmos/gaia:v21.0.0 init my-node --chain-id cosmoshub-4

# mainnet genesis.json 다운로드
curl -L https://github.com/cosmos/mainnet/raw/master/genesis/genesis.cosmoshub-4.json.gz \
  | gunzip > data/config/genesis.json

# 시드 피어 반영
sed -i.bak \
  's|^seeds *=.*|seeds = "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:14956,...'  \
  data/config/config.toml

그 후 docker compose up -d.

State Sync (빠른 동기화)

config.toml에서 state sync를 활성화하면 수 GB 수준의 스냅샷으로 수분 내 기동할 수 있습니다.

[statesync]
enable = true
rpc_servers = "https://rpc.cosmos.network:443,https://cosmos-rpc.polkachu.com:443"
trust_height = 20000000
trust_hash = "<위 높이의 블록 해시>"
trust_period = "168h0m0s"

trust height/hash는 Polkachu statesync 같은 공개 인덱스에서 확인하세요.

Monitoring 페이지 연동

이 저장소 웹 UI의 Monitoring 페이지에서 Cosmos/Cronos (Tendermint) 프리셋이 /status 를 호출합니다. 기본 URL http://localhost:26657 로 설정된 상태에서 조회 가능합니다.

메트릭 엔드포인트 (Prometheus)

gaiad(Tendermint/CometBFT)는 config.toml에서 Prometheus exporter를 활성화합니다.

# ~/.gaia/config/config.toml
[instrumentation]
prometheus = true
prometheus_listen_addr = ":26660"
  • 포트 26660
  • GET http://<host>:26660/metrics
  • docker-compose에 포트 매핑 추가: - "26660:26660"

전체 모니터링 스택: ../../../common/monitoring-stack.md.

프로덕션은 localhost 권장

Validator/Sentry 구성은 ../localhost/README.md 를 참고하세요.

cosmos 다른 챕터