美文网首页源铸开发
源铸:恒星Horizon容器相关调试及操作

源铸:恒星Horizon容器相关调试及操作

作者: 十月里的男艺术家 | 来源:发表于2018-10-18 21:41 被阅读0次

恒星容器镜像

恒星镜像使用下列软件:

  • Postgresql 9.6 存储 stellar-core 和 horizon 数据

  • stellar-core

  • horizon

  • Supervisord 管理上述服务

恒星镜像使用

恒星镜像网络模式

恒星镜像支持 --pubnet, --testnet or --standalone三种网络模式。

分别对应公共网络、测试网络、私有网络。

--pubnet(公共网络):连接到恒星的正式网络。

--testnet(测试网络):连接到恒星的测试网络。

--testnet(私有网络):搭建私有的恒星网络。

恒星容器交互vs后台进程

恒星容器启动时,采用 -it 标志启动交互模式,可以方便调试;采用 -d 标志启动后台进程模式。

Ephemeral 模式

Ephermeral模式用来支持开发和测试。每次Ephemeral模式启动数据库都是空的,配置文件采用默认的。

启动Ephemeral模式,非常简单。docker run的时候,不需要挂载volume即可。启动命令如下:

$ sudo docker run --rm -it -p "8000:8000" --name stellar stellar/quickstart --testnet

Persistent 模式

Persistent模式会存储数据,启动Persistent模式需要挂载宿主机的volume。这个volume就是宿主机目录,该目录存储数据及配置文件。

启动命令如下:

docker run --rm -it -p "8000:8000" -v "/home/scott/stellar:/opt/stellar" --name stellar stellar/quickstart --testnet

其中/home/scott/stellar指定宿主机目录。启动时,会把容器里/opt/stellar目录下配置文件拷贝到宿主机/home/scott/stellar目录下。

推荐按照如下步骤启动Persistent模式:

  1. 启动交互模式的容器,确保所有服务正常
  2. 关闭交互模式容器(Ctrl+C)
  3. 使用相同的宿主机目录,重新启动容器后台进程模式

定制配置文件

定制配置文件必须以Persistent模式启动,缺省的配置文件在第一次启动时拷贝到宿主机目录。配置文件如下:

  /opt/stellar
  |-- core                  
  |   `-- etc
  |       `-- stellar-core.cfg  # Stellar core config
  |-- horizon
  |   `-- etc
  |       `-- horizon.env       # A shell script that exports horizon's config
  |-- postgresql
  |   `-- etc
  |       |-- postgresql.conf   # Postgresql root configuration file
  |       |-- pg_hba.conf       # Postgresql client configuration file
  |       `-- pg_ident.conf     # Postgresql user mapping file
  `-- supervisor
      `-- etc
  |       `-- supervisord.conf  # Supervisord root configuration

注意: 推荐停止容器后,再编辑配置文件。

端口

Port Service Description
5432 postgresql database access port
8000 horizon http port
11625 stellar-core peer node port
11626 stellar-core main http port

端口安全

暴露 horizon的http端口8000是安全的。比较安全、便于开发的启动模式如下:

sudo docker run -it -v "/home/jon/stellar/horizon/testnet:/opt/stellar" -p "8000:8000" -p "127.0.0.1:5432:5432" --name stellar stellar/quickstart --testnet

访问调试容器

访问名为stellar的容器,执行如下命令:

$ sudo docker exec -it stellar /bin/bash

重启服务

通过如上命令进入容器的shell后,执行 * supervisorctl * 命令,shell出现如下内容:

horizon                          RUNNING    pid 143, uptime 0:01:12
postgresql                       RUNNING    pid 126, uptime 0:01:13
stellar-core                     RUNNING    pid 125, uptime 0:01:13
supervisor>

重启horizon

supervisor> restart horizon  

停止stellar-core

supervisor> stop stellar-core

查看logs

log放在容器/var/log/supervisor/目录下。

访问数据库

镜像管理着两个数据库,core存储stellar-core的数据,horizon存储horizon数据。

连接postgresql数据库用户名为stellar,密码取决于你的启动模式。Persistent模式是启动时候输入的密码;Ephemeral模式启动时自动产生密码,并打印在屏幕上。

常用启动命令

后台启动一个Ephemeral模式公网节点:

$ docker run -d -p "8000:8000" --name stellar stellar/quickstart --pubnet

前台启动一个Ephemeral模式测试节点,并暴露所有接口:

$ docker run --rm -it \
    -p "8000:8000" \
    -p "11626:11626" \
    -p "11625:11625" \
    --name stellar \
    stellar/quickstart --testnet

启动一个宿主机目录为/str,新的Persistent节点:

$ docker run -it --rm \
    -v "/str:/opt/stellar" \
    --name stellar \
    stellar/quickstart --pubnet

后台启动一个已经在宿主机目录初始化过的公网节点:

$ docker run -d \
    -v "/str:/opt/stellar" \
    -p "8000:8000" \
    --name stellar \
    stellar/quickstart --pubnet

相关文章

  • 源铸:恒星Horizon容器相关调试及操作

    恒星容器镜像 恒星镜像使用下列软件: Postgresql 9.6 存储 stellar-core 和 horiz...

  • 源铸:恒星Horizon搭建及启动

    安装docker 1. 卸载老版本docker 2. 安装依赖软件 3. 安装docker-ce 4. 启动doc...

  • 使用第一个容器

    一、容器操作 Docker镜像、容器、及相关配置,都存放在/var/lib/docker目录下 创建容器 停止容器...

  • Docker 相关的命令

    docker 相关 一、 docker查看全部容器命令docker ps -a 容器相关操作docker crea...

  • Docker基本命令

    镜像操作相关命令 容器操作相关命令 访问Docker仓库 Docker数据管理 端口映射与容器互联 Dockerf...

  • docker常用命令

    安装docker 更换镜像源 镜像相关 容器相关 网络相关 卷相关 资源占用相关 docker-compose常用

  • docker容器相关操作

    1. 创建容器 docker create -it repository:tag (此时容器创建好,但没启动。常用...

  • Docker容器相关操作

    查看所有的容器:docker container ls -a列出当前正在运行的容器:docker ps列出最近一次...

  • 洪武通宝

    明代初期,明太祖朱元璋于洪武元年,命京城(南京)工部宝源局及各省宝泉局铸行“洪武通宝”,由工部主管铸钱,下设宝源局...

  • Spring:自定义类扫描器(扫包)

    相关文章:Spring:获取容器中的Bean相关文章:Spring Boot:容器加载时执行特定操作 前言 在我们...

网友评论

    本文标题:源铸:恒星Horizon容器相关调试及操作

    本文链接:https://www.haomeiwen.com/subject/ibqezftx.html