基于Docker安装apisix

因业务需要安装ApiSix,从网上都未找到合适的教程,只能自己尝试。中间遇到很多问题,特此记录一下安装步骤希望对大家有用。


一、整体步骤:

1、安装ApiSix前确保安装docker和docker-compose相关教程借鉴如下教程:

      Docker安装:https://docs.docker.com/engine/install/

      Docker-Compose安装:https://docs.docker.com/compose/install/

2、配置docker-compose和apisix的yml配置文件

3、启动docke中apisix服务


二、安装步骤:

从ApiSix官方说明中可得知,通过Docker镜像的方式安装ApiSix,但是官方的介绍过于简洁。如下图:

基于Docker安装apisix_第1张图片

1、下载关于docker安装ApiSix示例。

https://github.com/apache/apisix-docker/tree/master/example

目录及文件介绍:

目录 描述 作用
apisix_conf Apisix配置文件路径;

 
1、 配置apisix监听路径
2、配置后台默认账号及密码
3、配置ETCD相关配置

apisix_log

Apisix的日志目录
dashboard_conf Apisix可视化配置目录
 
1、设置登陆账号以及密码
2、设置产生日志路径
3、设置可视化访问的端口
4、设置默认开启的插件
 
etcd_conf

ETCD配置目录

1、配置成员信息
2、配置集群信息
3、Proxy 代理
4、相关安全设置
 
etcd_data ETCD数据存放路径
mkcert 相关证书存放目录
upstream 关于nginx中Web服务的配置问存放目录
docker-compose.yml Docker-compose的相关配置 1、相关容器配置都放到此目录下,详细配置可以参考docker-compose官网配置

2、修改配置文件

           修改apisix_conf目录下config.yaml,修改连接ETCD地址,修改为ETCD所在服务器IP地址。

etcd:
  host:                           # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
    - "http://服务器IP:2379"     # multiple etcd address
  prefix: "/apisix"               # apisix configurations prefix
  timeout: 30                     # 30 seconds

3、上传示例到服务器端

    服务器上opt目录下创建apisix_docker目录,把example所有文件以及文件夹上传到此目录下。设置目录权限,控制台进入opt目录下执行以下命令

chmod -R 777 /opt/apisix-docker/example/

4、linux命令进入example目录下执行启动docker容器脚本

docker-compose up -d

 5、等待容器启动,因我已经下载过了,不需要重新下载镜像,首次执行时需要下载的,耐心等待即可,有问题处理对应问题。

基于Docker安装apisix_第2张图片

 6、执行以下命令查看容器是否启动成功

docker ps -a

7、容器启动成功后访问ApiSix仪表台,如下图成功访问

http://IP地址:9000/user/login?redirect=%2Fuser%2Flogin

基于Docker安装apisix_第3张图片


三、常见问题 

1、    对应容器未启动时,通过docker ps -a查看正在运行容器状态时,如果存在并未占用端口,怎需要看下对应容器日志。执行一下命令查看日志
docker logs  容器id

2、    ETCD出现报错:cannot access data directory: mkdir /bitnami/etcd/data: permission denied,表示etcd启动时未没有创建db的权限,在opt目录下执行:chmod -R 777 /opt/apisix-docker/example/

四、安装过程中使用命令 

--停止指定容器
docker stop $(docker ps -qa)
--删除全部容器
docker rm $(docker ps -qa)
--删除指定容器
docker rmi   容器ID
--通过docker-compose 启动容器(目录必须包含docker-compose.yml)
docker-compose up -d
--查看所有镜像
docker images
--查看容器日志
docker logs -f
--进入到容器内部
docker exec -it 容器ID bash

你可能感兴趣的:(ApiSix,docker,linux)