升级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 备份相应目录和文件,主要是配置和日志

1dd76e8f-afc1-42cb-938e-df7d3c4d9ff9

   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)    收藏  举报

导航