You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spiderman/docker/DOCKER_GUIDE.md

3.2 KiB

Spiderman Docker 使用指南

镜像信息

  • 镜像名称: spiderman
  • 镜像大小: 66.2MB
  • 版本标签: latest, v1.0.0
  • 基础镜像: Alpine Linux 3.18
  • Go版本: 1.23

构建Docker镜像

1. 构建镜像

docker build -t spiderman:latest .

2. 构建并添加版本标签

docker build -t spiderman:latest .
docker tag spiderman:latest spiderman:v1.0.0

运行Docker容器

1. 基本运行

docker run -p 8080:8080 spiderman:latest

2. 后台运行

docker run -d -p 8080:8080 --name spiderman-api spiderman:latest

3. 环境变量配置运行

docker run -p 8080:8080 \
  -e PORT=8080 \
  -e CHAINCODE_NAME=basic \
  -e CHANNEL_NAME=mychannel \
  -e LOG_LEVEL=info \
  -e LOG_FORMAT=json \
  spiderman:latest

4. 挂载Fabric证书目录

docker run -p 8080:8080 \
  -v /path/to/crypto-config:/crypto-config:ro \
  -v /path/to/test-network:/test-network:ro \
  spiderman:latest

使用Docker Compose

启动服务

docker-compose up -d

查看日志

docker-compose logs -f spiderman-api

停止服务

docker-compose down

健康检查

容器包含内置健康检查,每30秒检查一次API健康状态:

# 检查容器健康状态
docker ps
# 或
docker inspect --format='{{.State.Health.Status}}' <container_id>

端口说明

  • 8080: API服务端口
  • 健康检查: GET /health
  • Swagger文档: GET /swagger/index.html

容器特性

  • 多阶段构建,最小化镜像大小
  • 非root用户运行,增强安全性
  • 内置健康检查
  • CA证书支持HTTPS请求
  • 支持环境变量配置

环境变量

变量名 默认值 说明
PORT 8080 API服务端口
CHAINCODE_NAME basic 链码名称
CHANNEL_NAME mychannel 通道名称
LOG_LEVEL info 日志级别
LOG_FORMAT text 日志格式
CRYPTO_PATH /crypto-config 证书路径
PEER_ENDPOINT localhost:7051 Peer节点地址
GATEWAY_PEER peer0.org1.example.com 网关Peer
MSPID Org1MSP MSP ID

容器管理

查看运行中的容器

docker ps | grep spiderman

查看容器日志

docker logs <container_id>

进入容器

docker exec -it <container_id> /bin/sh

停止容器

docker stop <container_id>

删除容器

docker rm <container_id>

镜像管理

查看镜像

docker images | grep spiderman

删除镜像

docker rmi spiderman:latest

导出镜像

docker save spiderman:latest -o spiderman.tar

导入镜像

docker load -i spiderman.tar

故障排除

1. 容器启动失败

# 查看容器日志
docker logs <container_id>

# 检查环境变量
docker inspect <container_id>

2. 网络连接问题

# 检查端口映射
docker port <container_id>

# 检查网络连接
docker exec -it <container_id> wget -O- http://localhost:8080/health

3. 证书路径问题

# 检查挂载的证书目录
docker exec -it <container_id> ls -la /crypto-config