- 在虚拟机中安装Docker、Docker-compose
- 安装Docker
- 清除旧版本的docker
- 安装Docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
-
- 安装docker的依赖
-
yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.3 安装gcc
yum install -y gcc gcc-c++
-
-
- 添加软件源国内镜像
-
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.1.5 更新yum索引
yum makecache
1.1.6 安装docker-ce
yum install docker-ce docker-ce-cli containerd.io
1.1.7 启动docker,并设置开机启动
systemctl start docker
systemctl enable docker
1.1.8 验证docker的安装是否成功
docker version
1.2 安装Docker-compose
1.2.1下载docker-compose的二进制文件
1.2.1.1 查询虚拟机内核名和计算机硬件架构
1.2.1.2 下载地址
https://github.com/docker/compose/releases/tag/v2.21.0
1.2.1.3 将其迁移到/usr/local/bin目录下,并授予读写权限
chmod -R 777 /usr/local/bin/docker-compose
1.2.1.4 验证docker-compose的安装是否成功
docker-compose version
2、安装apisix
2.1 下载 apisix-docker仓库
git clone https://github.com/apache/apisix-docker.git
2.2 进入拉取的目录中
cd apisix-docker/example
2.3 修改docker-compose.yml文件内容
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
version: "3"
services:
apisix:
image: apache/apisix:${APISIX_IMAGE_TAG:-3.7.0-debian}
restart: always
volumes:
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
##network_mode: host
ports:
-
"9180:9180/tcp"
-
"9080:9080/tcp"
-
"9091:9091/tcp"
-
"9443:9443/tcp"
-
"9092:9092/tcp"
networks:
apisix:
etcd:
image: bitnami/etcd:3.4.15
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://43.139.54.145:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
networks:
apisix:
web1:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web1.conf:/etc/nginx/nginx.conf
ports:
- "9081:80/tcp"
environment:
- NGINX_PORT=80
networks:
apisix:
web2:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web2.conf:/etc/nginx/nginx.conf
ports:
- "9082:80/tcp"
environment:
- NGINX_PORT=80
networks:
apisix:
prometheus:
image: prom/prometheus:v2.25.0
restart: always
volumes:
- ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
apisix:
grafana:
image: grafana/grafana:7.3.7
restart: always
ports:
- "3000:3000"
volumes:
-
"./grafana_conf/provisioning:/etc/grafana/provisioning"
-
"./grafana_conf/dashboards:/var/lib/grafana/dashboards"
-
"./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini"
networks:
apisix:
networks:
apisix:
driver: bridge
volumes:
etcd_data:
driver: local
修改etcd的IP地址
43.139.54.145是腾讯云外网ip
2.4 使用docker-compose启用 APISIX
```
docker-compose -p docker-apisix up -d
2.5 查看apisix安装的情况
docker ps -a
3、安装apisix-dashboard
3.1 拉取apisix-dashboard镜像
docker pull apache/apisix-dashboard
3.2、在/root路径下,添加dashboard的配置文件conf.yaml
conf:
listen:
host: 0.0.0.0 # the address on which the `Manager API` should listen.
The default value is 0.0.0.0, if want to specify, please enable it.
This value accepts IPv4, IPv6, and hostname.
port: 9000 # The port on which the `Manager API` should listen.
allow_list: # If we don't set any IP list, then any IP access is allowed by default.
etcd:
endpoints: # supports defining multiple etcd host addresses for an etcd cluster
- 10.0.12.9:2379
username: "root" #如果没开启授权,可以注掉
password: "root" #如果没开启授权,可以注掉
authentication:
secret:
zQ5w5jkLDh3jZpywJ3sskrw6Yv633ruq
expire_time: 3600 # jwt token expire time, in second
users: # yamllint enable rule:comments-indentation
- username: admin
password: password
- username: user
password: password
10.0.12.9是腾讯云内网ip
3.3 启动容器
cd /root
docker run -it -p 9000:9000 -v ./conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml apache/apisix-dashboard
3.4 查看容器启动情况
docker ps -a
4、测试
4.1 访问dashboard页面
访问地址:http://43.139.54.145:9000,账号密码为conf.yaml文件中的
4.2 访问到grafana的页面
Grafana,账号密码均为admin