docker版本BZZ部署(ubuntu16.04)

{1}docker 环境搭建

需要一台配置公网ip的服务器

添加必要的软件依赖
apt update
apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

使用下面的 curl 导入源仓库的 GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

将Docker APT 软件源添加到的你的系统
add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

安装最近版本docker
apt update
apt install docker-ce docker-ce-cli containerd.io -y

安装指定版本,先列出docker软件源可用的版本
apt update
apt list -a docker-ce
apt install docker-ce= docker-ce-cli= containerd.io

docker进程状态
systemctl status docker

锁定docker版本,阻止更新
apt-mark hold docker-ce

验证安装过程
docker container run hello-world

卸载docker(可选)

停止所有正在运行的容器,并且移除所有的docker对象(容器,镜像,卷和网络)
docker container stop $(docker container ls -aq)
docker system prune -a --volumes

开始卸载(可选)
apt purge docker-ce
apt autoremove

设置docker开机自启动
systemctl enable docker

{2}docker compose 环境搭建

下载1.29版本 docker compose
curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose

增加可执行权限
chmod +x /usr/local/bin/docker-compose

增加软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -v

{3}单个host 开启5个bee 容器节点

拉取bee 和clef 容器镜像
docker pull ethersphere/bee:latest
docker pull ethersphere/clef:latest

查看当前容器的镜像
doker images

新建5个容器文件夹和1个clef文件夹
mkdir -p /data/beedata/.bee1
mkdir -p /data/beedata/.bee2
mkdir -p /data/beedata/.bee3
mkdir -p /data/beedata/.bee4
mkdir -p /data/beedata/.bee5
chmod 777 -R /data/bee-clef-data
chmod 777 -R /data/beedata

新建bees 文件,来执行docker compose 配置文件
mkdir bees
cd bees/

#编辑配置文件

vim docker-compose.yml


bee-1:
image: ethersphere/bee:latest
restart: unless-stopped
environment:
  - BEE_API_ADDR=127.0.0.1:1633
  - BEE_BOOTNODE=/dnsaddr/bootnode.ethswarm.org
  - BEE_BOOTNODE_MODE
  - BEE_CLEF_SIGNER_ENABLE=true
  - BEE_CLEF_SIGNER_ENDPOINT=http://clef-1:8550
  - BEE_CONFIG
  - BEE_CORS_ALLOWED_ORIGINS
  - BEE_DATA_DIR
  - BEE_DB_CAPACITY=2500000
  - BEE_DB_OPEN_FILES_LIMIT=20000
  - BEE_DB_BLOCK_CACHE_CAPACITY
  - BEE_DB_WRITE_BUFFER_SIZE
  - BEE_DB_DISABLE_SEEKS_COMPACTION=false
  - BEE_DEBUG_API_ADDR
  - BEE_DEBUG_API_ENABLE=true
  - BEE_GATEWAY_MODE=false
  - BEE_GLOBAL_PINNING_ENABLE=false
  - BEE_NAT_ADDR=
  - BEE_NETWORK_ID=1
  - BEE_P2P_ADDR
  - BEE_P2P_QUIC_ENABLE=false
  - BEE_P2P_WS_ENABLE=false
  - BEE_PASSWORD=password
  - BEE_PASSWORD_FILE=
  - BEE_PAYMENT_EARLY=1000000000000
  - BEE_PAYMENT_THRESHOLD=10000000000000
  - BEE_PAYMENT_TOLERANCE=50000000000000
  - BEE_RESOLVER_OPTIONS
  - BEE_STANDALONE=false
  - BEE_SWAP_ENABLE=true
  - BEE_SWAP_ENDPOINT=https://stake.getblock.io/mainnet/?api_key=8a42510a-4674-4db3-8843-bd7bcb321370
  - BEE_SWAP_FACTORY_ADDRESS
  - BEE_SWAP_INITIAL_DEPOSIT=100000000000000000
  - BEE_TRACING_ENABLE=false
  - BEE_TRACING_ENDPOINT=127.0.0.1:6831
  - BEE_TRACING_SERVICE_NAME
  - BEE_VERBOSITY=5
  - BEE_WELCOME_MESSAGE=hello  bzz !!!!!!!!!!!!!
  - BEE_FULL_NODE=true
ports:
  - "${API_ADDR:-1633}${BEE_API_ADDR:-:1633}"
  - "${P2P_ADDR:-1634}${BEE_P2P_ADDR:-:1634}"
  - "${DEBUG_API_ADDR:-127.0.0.1:1635}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
  - /data/beedata/.bee1:/home/bee/.bee
command: start
depends_on:
  - clef-1
logging:
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"
ulimits:
  nofile:
    soft: "131072"
    hard: "131072"        
bee-2:
image: ethersphere/bee:latest
restart: unless-stopped
environment:
  - BEE_API_ADDR=127.0.0.1:1633
  - BEE_BOOTNODE=/dnsaddr/bootnode.ethswarm.org
  - BEE_BOOTNODE_MODE
  - BEE_CLEF_SIGNER_ENABLE=true
  - BEE_CLEF_SIGNER_ENDPOINT=http://clef-1:8550
  - BEE_CONFIG
  - BEE_CORS_ALLOWED_ORIGINS
  - BEE_DATA_DIR
  - BEE_DB_CAPACITY=2500000
  - BEE_DB_OPEN_FILES_LIMIT=20000
  - BEE_DB_BLOCK_CACHE_CAPACITY
  - BEE_DB_WRITE_BUFFER_SIZE
  - BEE_DB_DISABLE_SEEKS_COMPACTION=false
  - BEE_DEBUG_API_ADDR
  - BEE_DEBUG_API_ENABLE=true
  - BEE_GATEWAY_MODE=false
  - BEE_GLOBAL_PINNING_ENABLE=false
  - BEE_NAT_ADDR=
  - BEE_NETWORK_ID=1
  - BEE_P2P_ADDR
  - BEE_P2P_QUIC_ENABLE=false
  - BEE_P2P_WS_ENABLE=false
  - BEE_PASSWORD=password
  - BEE_PASSWORD_FILE=
  - BEE_PAYMENT_EARLY=1000000000000
  - BEE_PAYMENT_THRESHOLD=10000000000000
  - BEE_PAYMENT_TOLERANCE=50000000000000
  - BEE_RESOLVER_OPTIONS
  - BEE_STANDALONE=false
  - BEE_SWAP_ENABLE=true
  - BEE_SWAP_ENDPOINT=https://stake.getblock.io/mainnet/?api_key=8a42510a-4674-4db3-8843-bd7bcb321370
  - BEE_SWAP_FACTORY_ADDRESS
  - BEE_SWAP_INITIAL_DEPOSIT=100000000000000000
  - BEE_TRACING_ENABLE=false
  - BEE_TRACING_ENDPOINT=127.0.0.1:6831
  - BEE_TRACING_SERVICE_NAME
  - BEE_VERBOSITY=3
  - BEE_WELCOME_MESSAGE
  - BEE_FULL_NODE=true
ports:
  - "${API_ADDR:-1636}${BEE_API_ADDR:-:1633}"
  - "${P2P_ADDR:-1637}${BEE_P2P_ADDR:-:1634}"
  - "${DEBUG_API_ADDR:-127.0.0.1:1638}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
  - /data/beedata/.bee2:/home/bee/.bee
command: start
depends_on:
  - clef-1
logging:
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"
ulimits:
  nofile:
    soft: "131072"
    hard: "131072"    
   


bee-3:    
image: ethersphere/bee:latest
restart: unless-stopped
environment:
  - BEE_API_ADDR=127.0.0.1:1633
  - BEE_BOOTNODE=/dnsaddr/bootnode.ethswarm.org
  - BEE_BOOTNODE_MODE
  - BEE_CLEF_SIGNER_ENABLE=true
  - BEE_CLEF_SIGNER_ENDPOINT=http://clef-1:8550
  - BEE_CONFIG
  - BEE_CORS_ALLOWED_ORIGINS
  - BEE_DATA_DIR
  - BEE_DB_CAPACITY=2500000
  - BEE_DB_OPEN_FILES_LIMIT=20000
  - BEE_DB_BLOCK_CACHE_CAPACITY
  - BEE_DB_WRITE_BUFFER_SIZE
  - BEE_DB_DISABLE_SEEKS_COMPACTION=false
  - BEE_DEBUG_API_ADDR
  - BEE_DEBUG_API_ENABLE=true
  - BEE_GATEWAY_MODE=false
  - BEE_GLOBAL_PINNING_ENABLE=false
  - BEE_NAT_ADDR=
  - BEE_NETWORK_ID=1
  - BEE_P2P_ADDR
  - BEE_P2P_QUIC_ENABLE=false
  - BEE_P2P_WS_ENABLE=false
  - BEE_PASSWORD=password
  - BEE_PASSWORD_FILE=
  - BEE_PAYMENT_EARLY=1000000000000
  - BEE_PAYMENT_THRESHOLD=10000000000000
  - BEE_PAYMENT_TOLERANCE=50000000000000
  - BEE_RESOLVER_OPTIONS
  - BEE_STANDALONE=false
  - BEE_SWAP_ENABLE=true
  - BEE_SWAP_ENDPOINT=https://stake.getblock.io/mainnet/?api_key=8a42510a-4674-4db3-8843-bd7bcb321370
  - BEE_SWAP_FACTORY_ADDRESS
  - BEE_SWAP_INITIAL_DEPOSIT=100000000000000000
  - BEE_TRACING_ENABLE=false
  - BEE_TRACING_ENDPOINT=127.0.0.1:6831
  - BEE_TRACING_SERVICE_NAME
  - BEE_VERBOSITY=3
  - BEE_WELCOME_MESSAGE
  - BEE_FULL_NODE=true
ports:
  - "${API_ADDR:-1639}${BEE_API_ADDR:-:1633}"
  - "${P2P_ADDR:-1640}${BEE_P2P_ADDR:-:1634}"
  - "${DEBUG_API_ADDR:-127.0.0.1:1641}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
  - /data/beedata/.bee3:/home/bee/.bee
command: start
depends_on:
  - clef-1
logging:
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"
ulimits:
  nofile:
    soft: "131072"
    hard: "131072"              
           
bee-4:
image: ethersphere/bee:latest
restart: unless-stopped
environment:
  - BEE_API_ADDR=127.0.0.1:1633
  - BEE_BOOTNODE=/dnsaddr/bootnode.ethswarm.org
  - BEE_BOOTNODE_MODE
  - BEE_CLEF_SIGNER_ENABLE=true
  - BEE_CLEF_SIGNER_ENDPOINT=http://clef-1:8550
  - BEE_CONFIG
  - BEE_CORS_ALLOWED_ORIGINS
  - BEE_DATA_DIR
  - BEE_DB_CAPACITY=2500000
  - BEE_DB_OPEN_FILES_LIMIT=20000
  - BEE_DB_BLOCK_CACHE_CAPACITY
  - BEE_DB_WRITE_BUFFER_SIZE
  - BEE_DB_DISABLE_SEEKS_COMPACTION=false
  - BEE_DEBUG_API_ADDR
  - BEE_DEBUG_API_ENABLE=true
  - BEE_GATEWAY_MODE=false
  - BEE_GLOBAL_PINNING_ENABLE=false
  - BEE_NAT_ADDR=
  - BEE_NETWORK_ID=1
  - BEE_P2P_ADDR
  - BEE_P2P_QUIC_ENABLE=false
  - BEE_P2P_WS_ENABLE=false
  - BEE_PASSWORD=password
  - BEE_PASSWORD_FILE=
  - BEE_PAYMENT_EARLY=1000000000000
  - BEE_PAYMENT_THRESHOLD=10000000000000
  - BEE_PAYMENT_TOLERANCE=50000000000000
  - BEE_RESOLVER_OPTIONS
  - BEE_STANDALONE=false
  - BEE_SWAP_ENABLE=true
  - BEE_SWAP_ENDPOINT=https://stake.getblock.io/mainnet/?api_key=8a42510a-4674-4db3-8843-bd7bcb321370
  - BEE_SWAP_FACTORY_ADDRESS
  - BEE_SWAP_INITIAL_DEPOSIT=100000000000000000
  - BEE_TRACING_ENABLE=false
  - BEE_TRACING_ENDPOINT=127.0.0.1:6831
  - BEE_TRACING_SERVICE_NAME
  - BEE_VERBOSITY=3
  - BEE_WELCOME_MESSAGE
  - BEE_FULL_NODE=true
ports:
  - "${API_ADDR:-1642}${BEE_API_ADDR:-:1633}"
  - "${P2P_ADDR:-1643}${BEE_P2P_ADDR:-:1634}"
  - "${DEBUG_API_ADDR:-127.0.0.1:1644}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
  - /data/beedata/.bee4:/home/bee/.bee
command: start
depends_on:
  - clef-1
logging:
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"  
    
bee-5:
image: ethersphere/bee:latest
restart: unless-stopped
environment:
  - BEE_API_ADDR=127.0.0.1:1633
  - BEE_BOOTNODE=/dnsaddr/bootnode.ethswarm.org
  - BEE_BOOTNODE_MODE
  - BEE_CLEF_SIGNER_ENABLE=true
  - BEE_CLEF_SIGNER_ENDPOINT=http://clef-1:8550
  - BEE_CONFIG
  - BEE_CORS_ALLOWED_ORIGINS
  - BEE_DATA_DIR
  - BEE_DB_CAPACITY=2500000
  - BEE_DB_OPEN_FILES_LIMIT=20000
  - BEE_DB_BLOCK_CACHE_CAPACITY
  - BEE_DB_WRITE_BUFFER_SIZE
  - BEE_DB_DISABLE_SEEKS_COMPACTION=false
  - BEE_DEBUG_API_ADDR
  - BEE_DEBUG_API_ENABLE=true
  - BEE_GATEWAY_MODE=false
  - BEE_GLOBAL_PINNING_ENABLE=false
  - BEE_NAT_ADDR=
  - BEE_NETWORK_ID=1
  - BEE_P2P_ADDR
  - BEE_P2P_QUIC_ENABLE=false
  - BEE_P2P_WS_ENABLE=false
  - BEE_PASSWORD=password
  - BEE_PASSWORD_FILE=
  - BEE_PAYMENT_EARLY=1000000000000
  - BEE_PAYMENT_THRESHOLD=10000000000000
  - BEE_PAYMENT_TOLERANCE=50000000000000
  - BEE_RESOLVER_OPTIONS
  - BEE_STANDALONE=false
  - BEE_SWAP_ENABLE=true
  - BEE_SWAP_ENDPOINT=https://stake.getblock.io/mainnet/?api_key=8a42510a-4674-4db3-8843-bd7bcb321370
  - BEE_SWAP_FACTORY_ADDRESS
  - BEE_SWAP_INITIAL_DEPOSIT=100000000000000000
  - BEE_TRACING_ENABLE=false
  - BEE_TRACING_ENDPOINT=127.0.0.1:6831
  - BEE_TRACING_SERVICE_NAME
  - BEE_VERBOSITY=3
  - BEE_WELCOME_MESSAGE
  - BEE_FULL_NODE=true
ports:
  - "${API_ADDR:-1645}${BEE_API_ADDR:-:1633}"
  - "${P2P_ADDR:-1646}${BEE_P2P_ADDR:-:1634}"
  - "${DEBUG_API_ADDR:-127.0.0.1:1647}${BEE_DEBUG_API_ADDR:-:1635}"
volumes:
  - /data/beedata/.bee5:/home/bee/.bee
command: start
depends_on:
  - clef-1
logging:
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"
ulimits:
  nofile:
    soft: "131072"
    hard: "131072" 

配置文件部分要修改的参数:

BEE_SWAP_ENDPOINT #登陆getblock网站注册获取自己的api地址

  • /data/beedata/.bee5: #文件存储部分,本次测试为5个容器节点使用同一个钱包地址,所以指向了同一个文件夹,不同bee容器使用不同钱包地址,建议每个修改成不一样
    "${DEBUG_API_ADDR #容器内部和外部映射端口,可根据实际情况修改

{4}测试验证

进入 compose 配置文件指定文件夹
cd bees/

使用 docker compose 开启5个bee容器
docker-compose up

#查看所有bee容器运行情况
docker-compose ps -a

#停止所有bee容器
docker-compose stop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值