升级apisix容器
1. 获取新镜像
1)docker pull 拉取新镜像
docker pull apache/apisix:3.14.1
2)若无法直接pull,可以从网上下载
https://xuanyuan.cloud/ (轩辕镜像,收费网站)
docker pull docker.xuanyuan.run/apache/apisix:latest # 需输入账号密码 # 7元/年,50G流量
# docker export -o apisix.tar <container_id> # 导出image
# docker load -i apisix.tar # 导入image
# docker tag docker.xuanyuan.run/apache/apisix:latest apache/apisix:3.14.1 # 重命名image
2. 备份旧版本apisix,新版本apisix测试
1)根据docker inspect 备份相应目录和文件,主要是配置和日志

2)获取旧版本apisix的启动命令,主要依据docker inspect的结果(可以借助deepseek)
docker run -d \ --name zkdn-apigateway-apisix \ --restart=always \ --privileged \ -v /data/apisix-docker/apisix_log:/usr/local/apisix/logs \ -v /data/apisix-docker/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro \ -v /data/apigateway-portal/ssl:/ssl \ -p 8056:9080/tcp \ -p 8055:9091/tcp \ -p 8057:9092/tcp \ -p 8053:9180/tcp \ -p 8054:9443/tcp \ --network bridge \ --log-driver json-file \ -e TZ=Asia/Shanghai \ --security-opt label=disable \ --cgroupns=host \ apache/apisix:3.1.0-centos
3)使用备份文件和新端口,用新的image启动新apisix容器,观察有无报错
docker run -d \ --name zkdn-apigateway-apisix-new \ --restart=always \ --privileged \ -v /data/apisix-docker/apisix_log-bak:/usr/local/apisix/logs \ -v /data/apisix-docker/apisix_conf-bak/config.yaml:/usr/local/apisix/conf/config.yaml:ro \ -v /data/apigateway-portal-bak/ssl:/ssl \ -p 9056:9080/tcp \ -p 9055:9091/tcp \ -p 9057:9092/tcp \ -p 9053:9180/tcp \ -p 9054:9443/tcp \ --network bridge \ --log-driver json-file \ -e TZ=Asia/Shanghai \ --security-opt label=disable \ --cgroupns=host \ apache/apisix:3.14.1
4)根据启动报错,进行修改
根据docker logs日志,有如下2处需要修改:
(1)修改 /data/apisix-docker/apisix_conf-bak/config.yaml
apisix: # 在 apisix 层级启用 http2 enable_http2: true # ← 添加这行到 apisix 配置部分 ssl_listen: - port: 9443 # 移除 enable_http2 参数
(2)修改 /data/apisix-docker/apisix_log-bak 的权限
chmod -R 777 /data/apisix-docker/apisix_log-bak
5)测试启动没有报错后,确认版本信息
docker exec -it <new-apisix> apisix version
3. 升级apisix
- 先确认容器是通过docker-compose启动 还是直接使用 docker run 启动
若是docker run启动,则执行如下步骤:
1)停止正在运行的旧版本apisix,仅停止不删除容器,方便恢复
docker stop <old-apisix>
2)修改相应的配置文件和日志目录权限,使用原端口和原文件启动 新版本的apisix,使用新的容器名(若容器名不变,需先删除旧的容器)
docker run -d \ --name zkdn-apigateway-apisix \ --restart=always \ --privileged \ -v /data/apisix-docker/apisix_log:/usr/local/apisix/logs \ -v /data/apisix-docker/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro \ -v /data/apigateway-portal/ssl:/ssl \ -p 8056:9080/tcp \ -p 8055:9091/tcp \ -p 8057:9092/tcp \ -p 8053:9180/tcp \ -p 8054:9443/tcp \ --network bridge \ --log-driver json-file \ -e TZ=Asia/Shanghai \ --security-opt label=disable \ --cgroupns=host \ apache/apisix:3.14.1
若是通过docker-compose启动,则执行如下步骤:
1)修改docker-compose.yml文件,修改image字段:
# 修改image字段 services: apisix: image: apache/apisix:3.14.1 # 从3.1.0-centos改为3.14.1 # 其他配置保持不变
2)启动新版的apisix
docker-compose up -d
4. 验证apisix版本
# 查看容器日志 docker logs apisix # 检查APISIX是否正常启动 curl http://127.0.0.1:9080/apisix/admin/routes -H 'X-API-KEY: your-admin-key' # 验证版本 curl http://127.0.0.1:9080 --head | grep Server # 应显示:Server: APISIX/3.14.0
posted on 2026-01-26 14:43 Karlkiller 阅读(2) 评论(0) 收藏 举报
浙公网安备 33010602011771号