- 在虚拟机中安装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
4.3 访问prometheus页面
http://43.139.54.145:9090