APISIX系列 | 使用 docker-apisix 安装APISIX服务
官方仓库:https://github.com/iresty/docker-apisix
官方仓库
拉取
1 | git clone git@github.com:iresty/docker-apisix.git |
安装 etcd 服务
1、拉去etcd镜像
1 | docker pull bitnami/etcd:3.3.13-r80 |
2、启动etcd服务器实例
1 2 3 4 5 6 | docker run -it --name etcd-server \ -v /e/github/docker-apisix/example/etcd_conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml \ -p 2379:2379 \ -p 2380:2380 \ --env ALLOW_NONE_AUTHENTICATION=yes \ -d bitnami/etcd:3.3.13-r80 |
Windows 环境执行命令:
1 | docker run -it --name etcd-server - v /e/github/docker-apisix/example/etcd_conf/etcd .conf.yml: /opt/bitnami/etcd/conf/etcd .conf.yml -p 2379:2379 -p 2380:2380 -- env ALLOW_NONE_AUTHENTICATION= yes -d bitnami /etcd :3.3.13-r80 |
3、测试是否安装成功
进入etcd实例
1 2 | docker exec -it etcd-server /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh" I have no name!@1d05cea9f08c: /opt/bitnami/etcd $ |
测试
1 2 3 4 5 6 7 8 9 | $ etcdctl put key- test "Hi Tinywan!" // 设置 OK I have no name!@1d05cea9f08c:/$ etcdctl get key- test // 获取 key- test Hi Tinywan! I have no name!@1d05cea9f08c:/$ etcdctl del key- test // 删除 1 I have no name!@1d05cea9f08c:/$ etcdctl get key- test // 删除 I have no name!@1d05cea9f08c:/$ |
4、进入容器查看是否已经开启v2协议
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | > docker exec -it etcd-server bash $ etcd --help | grep enable -v2 usage: etcd [flags] start an etcd server etcd --version show the version of etcd etcd -h | --help show the help information about etcd etcd --config- file path to the server configuration file etcd gateway run the stateless pass-through etcd TCP connection forwarding proxy etcd grpc-proxy run the stateless etcd v3 gRPC L7 reverse proxy -- enable -v2 'true' --experimental- enable -v2v3 '' |
--enable-v2 'true' 表示已经开启v2协议。
原因:APISIX 目前仅支持 etcd 的 v2 协议存储,但最新版的 etcd (3.4 开始)已经默认关闭 v2 协议。 需要在启动参数中添加 --enable-v2=true,才能启用 v2 协议。
4、启动etcd客户端实例
1 2 3 4 | $ docker run -it -- rm \ --network app-tier \ -- env ALLOW_NONE_AUTHENTICATION= yes \ bitnami /etcd :latest etcdctl --endpoints http: //etcd-server :2379 set /message Hello |
Windows 环境
1 | docker run -it -- rm --network app-tier -- env ALLOW_NONE_AUTHENTICATION= yes bitnami /etcd :3.3.13-r80 etcdctl --endpoints http: //etcd-server :2379 set /message Hello |
安装 apisix 服务
使用官方镜像可能会超时,提示错误:request canceled (Client.Timeout exceeded while awaiting headers)
1、拉去镜像
1 | docker pull registry.cn-beijing.aliyuncs.com /tinywan/apisix :alpine |
2、修改配置文件
config.yaml
1 2 | etcd: host: "http://127.0.0.1:2379" # etcd address |
修改为本机电脑的内网IP,windows 查看本地内网IP。打开命令行,输入 ipconfig
修改后
1 2 | etcd: host: "http://192.168.1.3:2379" # etcd address |
2、运行服务
1 2 3 4 5 | > docker run --name tinywan-api-gateway \ - v /e/GitHub/docker-apisix/example/apisix_conf/config .yaml: /usr/local/apisix/conf/config .yaml \ - v /e/GitHub/docker-apisix/example/apisix_log : /usr/local/apisix/logs \ -p 8080:9080 \ -p 8083:9443 registry.cn-beijing.aliyuncs.com /tinywan/apisix :alpine |
这里挂在配置文件和日志目录都是使用的绝对路径
windows 文件目录为
1 | E:\GitHub\docker-apisix |
则挂在目录地址为
1 | /e/GitHub/docker-apisix |
3、查看服务是佛已经启动
1 2 3 4 | > docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7747e9a4bcd6 registry.cn-beijing.aliyuncs.com /tinywan/apisix :alpine "sh -c '/usr/bin/api…" 14 seconds ago Up 13 seconds 0.0.0.0:8080->9080 /tcp , 0.0.0.0:8083->9443 /tcp tinywan-api-gateway 1d05cea9f08c bitnami /etcd :3.3.13-r80 "/entrypoint.sh etcd" 29 minutes ago Up 29 minutes 0.0.0.0:2379-2380->2379-2380 /tcp etcd-server |
控制台
APISIX 内置了 dashboard,使用浏览器打开 http://127.0.0.1:8080/apisix/dashboard/
即可使用, 不用填写用户名和密码,直接登录
直接点击登录
恭喜你安装成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2018-10-24 Linux 命令详解(十三)如何启动、关闭和设置ubuntu防火墙
2016-10-24 Nginx入门笔记之————配置文件结构