官方仓库:https://github.com/iresty/docker-apisix

官方仓库

拉取

git clone git@github.com:iresty/docker-apisix.git

安装 etcd 服务

1、拉去etcd镜像

docker pull bitnami/etcd:3.3.13-r80

2、启动etcd服务器实例

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 环境执行命令:

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实例

docker exec -it etcd-server /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"
I have no name!@1d05cea9f08c:/opt/bitnami/etcd$

测试

$  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协议

> 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客户端实例

$ 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 环境

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、拉去镜像

docker pull registry.cn-beijing.aliyuncs.com/tinywan/apisix:alpine

2、修改配置文件

config.yaml

etcd:
host: "http://127.0.0.1:2379" # etcd address

修改为本机电脑的内网IP,windows 查看本地内网IP。打开命令行,输入 ipconfig

修改后

etcd:
host: "http://192.168.1.3:2379" # etcd address  

2、运行服务

> 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 文件目录为

E:\GitHub\docker-apisix

则挂在目录地址为

/e/GitHub/docker-apisix

3、查看服务是佛已经启动

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

直接点击登录

恭喜你安装成功

APISIX系列 | 使用 docker-apisix 安装APISIX服务的更多相关文章

  1. docker中安装ssh服务

    系统:Debian Docker 目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker 步骤: 初始状态:通过docker pull debian得到的一个debi ...

  2. docker上安装nginx服务

    环境     1.开启一个容器,安装nginx,略过   2.假如第一步新启动没映射端口的话,重新把容器保存为镜像然后再重新运行一个新容器,不建议在一个正在运行的容器上做端口映射 docker run ...

  3. Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)

    转载地址:https://www.cnblogs.com/spec-dog/p/11320513.html 开发中经常需要安装一些常用的服务软件,如Nginx.MySql.Redis等,如果按照普通的 ...

  4. apisix网关-构建docker镜像构建及插件化开发

    高能劝退:lua开发,适合小白看!!! 前段时间有个项目,用的java程序做网关,压测tps只有1k多点,惨不忍睹. 后来公司有个大佬改用apisix做网关,tps飙升到1w多. 于是对神奇的apis ...

  5. 使用docker安装mysql服务

    使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址 docker pull hub.c.163.com/library/mysql:5.7 2 重命名镜像名 dock ...

  6. docker 系列之 docker安装

    Docker支持以下的CentOS版本 CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. ...

  7. docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目

    docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...

  8. RabbitMQ学习系列一安装RabbitMQ服务

    RabbitMQ学习系列一:windows下安装RabbitMQ服务 http://www.80iter.com/blog/1437026462550244 Rabbit MQ 是建立在强大的Erla ...

  9. 在CentOS7.5上安装Docker,在Docker中拉取CentOS7.5镜像并安装SSH服务

    # 安装docker yum install -y docker # 启动docker systemctl start docker # 加入开机启动 systemctl enable docker ...

随机推荐

  1. Android源码分析(四)-----Android源码编译及刷机步骤

    一 : 获取源码: 每个公司服务器地址不同,以如下源码地址为例: http://10.1.14.6/android/Qualcomm/msm89xx/branches/msm89xx svn环境执行: ...

  2. 【Python】列表推导式

    1. 列表推导式 list1 = [1, 3, 5, 6, 8] list2 = [x * 2 for x in list1] print(list2) # [2, 6, 10, 12, 16]

  3. Spring+SpringMVC+Hibernate 与 shiro 整合步骤

    目录 1. 业务需求分析 2. 创建数据库 3. 创建 maven webapp 工程 4. 创建实体类(POJO) 5. 配置 Hibernate 和 Mapping 5.1 Hibernate 主 ...

  4. eval用法

    在shell的学习中,我们会遇到这两种符号:反引号(` `)和$(),那么它们之间有什么区别和联系呢? 我们都知道在bash中,反引号和$()都是用来做命令替换的,命令替换就是用来重组命令行,先完成引 ...

  5. Beta冲刺博客汇总(校园帮-追光的人)

    所属课程 软件工程1916 作业要求 Beta冲刺博客汇总 团队名称 追光的人 作业目标 汇总Beta阶段的博客,方便查看 冲刺日志 Beta之前-凡事预则立(校园帮-追光的人)5-22 Beta冲刺 ...

  6. Flux 和 Mono 的区别

    Flux 和 Mono 是 Reactor 中的两个基本概念.Flux 表示的是包含 0 到 N 个元素的异步序列.在该序列中可以包含三种不同类型的消息通知:正常的包含元素的消息.序列结束的消息和序列 ...

  7. 20180520模拟赛T3——chess

    [问题描述] 小美很喜欢下象棋. 而且她特别喜欢象棋中的马. 她觉得马的跳跃方式很独特.(以日字格的方式跳跃) 小芳给了小美一张很大的棋盘,这个棋盘是一个无穷的笛卡尔坐标. 一开始\(time=0\) ...

  8. linux内核中的文件描述符(二)--socket和文件描述符

    http://blog.csdn.net/ce123_zhouwei/article/details/8459730 Linux内核中的文件描述符(二)--socket和文件描述符 Kernel ve ...

  9. 手写spark wordCount

    val conf: SparkConf = new SparkConf().setMaster(Local[*]).setAppName("wordCount") val sc=n ...

  10. CLR调试时的sos.dll/clr.dll/mscorwks.dll/mscordacwks.dll等动态库的版本对应

    大家都知道,在调试托管代码时,一定会加载到sos/clr/mscorwks/mscordacwks这些动态库,才能够很好的完成我们的调试工作,那么他们的版本对应关系是怎样的呢,特别是clr.dll/m ...