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.
3.2 KiB
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