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/ 即可使用, 不用填写用户名和密码,直接登录  

 直接点击登录

 恭喜你安装成功

posted @   Tinywan  阅读(8726)  评论(1编辑  收藏  举报
编辑推荐:
· 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入门笔记之————配置文件结构
点击右上角即可分享
微信分享提示