APISIX系列 | 使用 docker-apisix 安装APISIX服务
官方仓库: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服务的更多相关文章
- docker中安装ssh服务
系统:Debian Docker 目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker 步骤: 初始状态:通过docker pull debian得到的一个debi ...
- docker上安装nginx服务
环境 1.开启一个容器,安装nginx,略过 2.假如第一步新启动没映射端口的话,重新把容器保存为镜像然后再重新运行一个新容器,不建议在一个正在运行的容器上做端口映射 docker run ...
- Docker笔记:常用服务安装——Nginx、MySql、Redis(转载)
转载地址:https://www.cnblogs.com/spec-dog/p/11320513.html 开发中经常需要安装一些常用的服务软件,如Nginx.MySql.Redis等,如果按照普通的 ...
- apisix网关-构建docker镜像构建及插件化开发
高能劝退:lua开发,适合小白看!!! 前段时间有个项目,用的java程序做网关,压测tps只有1k多点,惨不忍睹. 后来公司有个大佬改用apisix做网关,tps飙升到1w多. 于是对神奇的apis ...
- 使用docker安装mysql服务
使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址 docker pull hub.c.163.com/library/mysql:5.7 2 重命名镜像名 dock ...
- docker 系列之 docker安装
Docker支持以下的CentOS版本 CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker. ...
- docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目
docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...
- RabbitMQ学习系列一安装RabbitMQ服务
RabbitMQ学习系列一:windows下安装RabbitMQ服务 http://www.80iter.com/blog/1437026462550244 Rabbit MQ 是建立在强大的Erla ...
- 在CentOS7.5上安装Docker,在Docker中拉取CentOS7.5镜像并安装SSH服务
# 安装docker yum install -y docker # 启动docker systemctl start docker # 加入开机启动 systemctl enable docker ...
随机推荐
- ubuntu18.04使用kubeadm部署k8s单节点
实验目的: 体验kubeadm部署k8s服务,全流程体验! 实验环境: ubuntu18.04 联网在线部署 kubeadm 01.系统检查 节点主机名唯一,建议写入/etc/hosts 禁止swap ...
- Hadoop 单机安装教程
Hadoop 单机安装教程 本文原始地址:https://sitoi.cn/posts/24540.html 安装环境 Fedora 29 openjdk version "1.8.0_19 ...
- JavaScript数组常用操作方法
ES5操作数组的方法 1.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3]; var ar ...
- 关于background-image设置背景图片
每天进步一小步,一年进步一大步. 本篇主要介绍背景图片设置,平铺,x y方向上的平铺,是否重复显示no repeat 显示的初始位置 background-image:url(images/inde ...
- 利用 subst.exe 可以将任意文件夹映射成盘符:
subst命令:将路径与驱动器号关联,即将一个目录当做一个磁盘驱动器来看: 假设:将E:\下的baidu文件夹设置成虚拟盘,虚拟盘的盘符为M. 1.点开始按钮,在运行框里输入 subst m: E:\ ...
- APP——Ruby开源分发平台搭建
前言 蒲公英,维护后把我上传的包清除了,所以想自己搭建一个用下. 步骤 项目用ruby语言写的,部署起来也很简单支持源码和Docker部署 GitHub | https://github.com/pl ...
- Elasticsearch(一)基础入门
介绍 Elasticsearch 是一个实时的分布式搜索分析引擎, 它能让你以前所未有的速度和规模,去探索你的数据. 它被用作全文检索.结构化搜索.分析以及这三个功能的组合: Elasticsearc ...
- Spring Data JPA:关联映射操作
1.一对一的关系关联 需求:用户和角色一对一关联 package com.example.jpa.pojo; import javax.persistence.*; @Entity @Table(na ...
- Spring @Scheduled定时任务的fixedRate,fixedDelay,cron的作用和不同
一. 三种定时类型. 1.cron --@Scheduled(cron="0/5 * * * *?") 当时间达到设置的时间会触发事件.上面那个例子会每5秒执行一次. 201 ...
- 学习:STL_vector容器
vector基本概念: 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后 ...