快速构建LNMP框架及其监控架构
环境需安装docker和docker-compose
本文档仅在测试环境下部署,搭建生产环境仅供参考
由于是测试环境,容器都映射了对应端口,为了安全性不应暴露敏感端口。
组件 | 版本 | 说明 |
---|---|---|
Linux CentOs | 7 | 服务器系统 |
Docker应用容器引擎 | 26.1.2 | 以容器的形式构建LNMP架构 |
docker-compose容器编排工具 | v2.27.0 | 配合Dockerfile快速部署LNMP架构 |
Nginx (docker) | 1.22 | Web服务器,测试环境使用kodbox网盘系统 |
Mysql (docker) | 5.7 | 关系型数据库 |
Php (docker) | 7.4.33-fpm | php框架,网站后端环境 |
Redis (docker) | 5.0.12 | 高性能的key-value非关系型数据库,适用于高并发读写的情况 |
Prometheus | 2.32.1 | 开源的服务监控系统 |
Grafana | v8.3.3 | 可视化平台 |
LNMP架构容器:
容器名称 | IP地址 | 映射端口 |
---|---|---|
nginx | 172.30.0.2 | 80 443 |
php | 172.30.0.3 | 9000 |
mysql | 172.30.0.4 | 3306 |
redis | 172.30.0.5 | 6379 |
监控架构容器:
容器名称 | IP地址 | 映射端口 | 说明 |
---|---|---|---|
prometheus | 172.30.0.6 | 9090 | 监控 |
grafana | 172.30.0.7 | 3000 | 可视化 |
cadvisor | 172.30.0.8 | 8080 | 暴露docker指标便于prometheus监控 |
nginx_exproter | 172.30.0.9 | 9113 | 暴露nginx指标 |
mysqld-exporter | 172.30.0.10 | 9104 | 暴露mysql指标 |
php-fpm_exporter | 172.30.0.11 | 9253 | 暴露php指标 |
node-exporter | 172.30.0.12 | 9100 | 暴露服务器指标 |
1.创建数据目录、写入配置文件
1.1.创建目录
mkdir /opt/web \
/opt/web/html \
/opt/web/mysql \
/opt/web/certs \
/opt/web/config \
/opt/web/dockerfile \
/opt/prometheus \
/opt/grafana-storage
-
mkdir /opt/web
创建站点目录 -
/opt/web/html
创建html目录 用于存放网站页面 -
/opt/web/mysql
创建mysql目录 用于存放数据库配置 -
/opt/web/certs
创建certs 目录用于存放证书 -
/opt/web/config
#创建config目录 用于存放映射容器的配置文件 -
/opt/web/dockerfile
#创建dockerfile目录 用于存放dockerfile文件 -
/opt/prometheus
#创建prometheus目录 用于存放prometheus.yml(配置文件) -
/opt/grafana-storage
#创建grafana-storage 目录 用于存放grafana的配置(如保存的仪表盘)1.2.创建配置文件
touch /opt/web/config/default.conf \
/opt/web/config/nginx.conf \
/opt/web/config/php.ini \
/opt/web/dockerfile/nginx_dockerfile \
/opt/web/dockerfile/php_dockerfile \
/opt/prometheus/prometheus.yml
-
touch /opt/config/default.conf
创建nginx默认配置文件 -
/opt/config/nginx.conf
创建nginx服务器配置文件 -
/opt/config/php.ini
创建php配置文件 -
/opt/web/dockerfile/nginx_dockerfile
创建nginx的dockerfile文件 -
/opt/web/dockerfile/php_dockerfile
创建php的dockerfile文件 -
/opt/prometheus/prometheus.yml
创建prometheus的监控配置文件1.3.添加目录权限
赋予目录权限,否则grafana容器无法启动
chmod 777 -R /opt/grafana-storage
2.写入配置文件、Dockerfile
2.1.写入Nginx的dockerfile文件
用于构建自定义镜像,安装了vim编辑器方便修改容器的其它配置
cat << EOF >/opt/web/dockerfile/nginx_dockerfile
#以官方的Nginx1.22版本镜像为基础
FROM nginx:1.22
#备份原始下载源数据
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak
#删除掉原有的源文件
RUN rm /etc/apt/sources.list
#创建空白源文件
RUN touch /etc/apt/sources.list
#更换阿里源
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
#更新源
RUN apt-get update
#安装vim编辑器,方便修改容器内的配置文件
RUN apt-get install -y vim
#封装:docker build -t"my_nginx:1.22" .
EOF
2.2.写入php的dockerfile文件
用于构建自定义镜像,安装了vim编辑器方便修改容器的其它配置,安装了php的扩展、gd库,启用了PHP监控页面。
cat << EOF >/opt/web/dockerfile/php_dockerfile
#以官方的php:7.4.33-fpm版本镜像为基础
FROM php:7.4.33-fpm
#备份原始下载源数据
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak
#删除掉原有的源文件
RUN rm /etc/apt/sources.list
#创建空白源文件
RUN touch /etc/apt/sources.list
#更换阿里源
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
RUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >> /etc/apt/sources.list
#更新源
RUN apt-get update
#安装vim编辑器,方便修改容器内的配置文件
RUN apt-get install -y vim
#安装PHP扩展
RUN apt install -y libmariadb-dev-compat libmariadb-dev libzip-dev libmagickwand-dev imagemagick
RUN docker-php-ext-install mysqli pdo_mysql zip exif gd intl bcmath opcache
RUN pecl install imagick
RUN sh -c 'echo "extension=imagick.so" > /usr/local/etc/php/conf.d/imagick.ini'
#安装GD库和依赖
RUN apt install -y libfreetype6 libwebp-dev libjpeg-dev libpng-dev
RUN apt install libjpeg62-turbo-dev libfreetype6-dev -y
RUN su -c "docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg"
RUN su -c "docker-php-ext-install gd"
#安装redis扩展
RUN cd /tmp
RUN apt-get install -y wget
RUN wget -P /tmp/ https://pecl.php.net/get/redis-5.3.7.tgz
RUN mkdir /tmp/redis
RUN tar -zxvf /tmp/redis-5.3.7.tgz -C /tmp/redis
RUN cd /tmp/redis/redis-5.3.7 && /usr/local/bin/phpize
RUN cd /tmp/redis/redis-5.3.7 && whereis php-config
RUN cd /tmp/redis/redis-5.3.7 && ./configure --with-php-config=/usr/local/bin/php-config
RUN cd /tmp/redis/redis-5.3.7 && make
RUN cd /tmp/redis/redis-5.3.7 && make install
RUN echo "extension=/usr/local/lib/php/extensions/no-debug-non-zts-20190902/redis.so" >> /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
#开启PHP监控页面
RUN echo "pm.status_path = /status" >> /usr/local/etc/php-fpm.conf
RUN echo "ping.path = /ping" >> /usr/local/etc/php-fpm.conf
#封装:docker build -t"my_php:7.4.33-fpm" .
EOF
2.3.写入Nginx的default.conf文件
cat << EOF >/opt/web/config/default.conf
#涉及到IP地址请以实际实验环境为准
#nginx80端口转发到php,即为主页
server {
listen 80; #监听80端口
listen [::]:80;
server_name localhost; #也可以填写自己注册的域名
location / {
root /var/www/html; #当前配置的页面文件根目录
index index.php index.html index.htm; #添加index.php作为默认首页
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #错误页面设置
location = /50x.html {
root /usr/share/nginx/html;
}
# 与php-fpm通信的关键设置
location ~ \.php\$ {
root /var/www/html; #页面文件根目录
fastcgi_pass 172.30.0.3:9000; #php-fpm的通信端口,由于已经将容器9000端口映射到了主机的9000端口,所以这里填“主机ip:9000”也是可以的。
fastcgi_index index.php; #默认主页文件设置
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param SCRIPT_NAME \$fastcgi_script_name;
include fastcgi_params;
}
#开启stub_status功能,用于监控Nginx指标
location /stub_status {
stub_status on;
access_log off;
#allow 0.0.0.0/0;
#deny all;
}
}
#php的监控页面转发至nginx的9010端口
server {
listen 9010; #监听9010端口
listen [::]:9010;
server_name localhost; #也可以填写自己注册的域名
location ~ ^/(status|ping)\$ {
#fastcgi_pass unix:/tmp/php-cgi.sock; # unix socket
fastcgi_pass 172.30.0.3:9000; # tcp
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
2.3.写入Nginx的default.conf文件
cat << EOF >/opt/web/config/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
#设置最大上传限制2048M
client_max_body_size 2048M;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
EOF
2.4.写入php.ini文件
只修改了最大上传限制为2048M 其余均为默认值
删除了注释的配置 只保留默认的未注释配置
cat << EOF >/opt/web/config/php.ini
[PHP]
; 注释来源于https://blog.csdn.net/dianpujiu5323/article/details/101285708
; 在apache下启用php语言引擎
engine = On
; 是否开启段标签 若php数据与XML数据结合使用时则需要关闭<? ?>
short_open_tag = Off
; 浮点数的有效小数位数
precision = 14
; 输出缓冲配置,PHP先内部保存,然后再向客户端发送数据。如果应用程序的输出超过了该设置,PHP将以大致指定大小的块发送数据。
output_buffering = 4096
; 是否使用zlib库压缩输出
zlib.output_compression = Off
; 隐式刷新
implicit_flush = Off
; 反序列化回调函数
unserialize_callback_func =
; 默认值确保浮点数或者双精度数序列化保持精度不变
serialize_precision = -1
; 出于安全原因禁用某些函数/类
disable_functions =
disable_classes =
; 垃圾收集机制
zend.enable_gc = On
zend.exception_ignore_args = Off
expose_php = On
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
;设置最大上传限制2048M
upload_max_filesize = 2048M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
;CLI服务器是否在终端输出中使用ANSI颜色编码
cli_server.color = On
[Pdo_mysql]
pdo_mysql.default_socket=
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = On
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[bcmath]
bcmath.scale = 0
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.cookie_samesite =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.sid_length = 26
session.trans_sid_tags = "a=href,area=href,frame=src,form="
session.sid_bits_per_character = 5
[Assertion]
zend.assertions = 1
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[ldap]
ldap.max_links = -1
EOF
2.5.写入prometheus.yml 监控文件
cat << EOF >/opt/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['172.30.0.6:9090']
labels:
instance: prometheus
- job_name: Docker
static_configs:
- targets: ['172.30.0.8:8080']
labels:
instance: Docker_exporter
- job_name: Nginx
static_configs:
- targets: ['172.30.0.9:9113']
labels:
instance: Nginx_exporter
- job_name: mysql_exporter
scrape_interval: 5s
static_configs:
- targets: ['172.30.0.10:9104']
labels:
instance: mysql_exporter
- job_name: php_exporter
scrape_interval: 5s
static_configs:
- targets: ['172.30.0.11:9253']
labels:
instance: php_exporter
- job_name: Linux
static_configs:
- targets: ['172.30.0.12:9100']
labels:
instance: Linux_server_exporter
rule_files:
- "/opt/prometheus/mysql_exporter_recording_rules.yml"
EOF
2.编写Docker-compose构建容器
##因为文件内全部使用的绝对路径 因此docker-compose.yml的存放位置不作严格要求##
vim docker-compose.yml
version: '3.8'
#创建网络
networks:
mynet:
ipam:
config:
- subnet: 172.30.0.0/16
services:
nginx:
build: #构建自定义镜像
context: /opt/web/dockerfile/ # 指定dockerfile文件的所在路径
dockerfile: nginx_dockerfile # 指定Dockerfile文件名称
image: my_nginx:1.22 #自定义镜像名和版本号
container_name: nginx #容器名称 可自定义
restart: always #是否开机自启
ports: #端口映射
- 80:80
- 443:443
- 9010:9010
volumes: #容器文件映射
- /opt/web/config/default.conf:/etc/nginx/conf.d/default.conf
- /opt/web/config/nginx.conf:/etc/nginx/nginx.conf
- /opt/web/certs:/etc/nginx/certs
- /opt/web/html:/var/www/html
# 加入创建的网络 指定静态IP
networks:
mynet:
ipv4_address: 172.30.0.2
php:
build: #构建自定义镜像
context: /opt/web/dockerfile/ # 指定dockerfile文件的所在路径
dockerfile: php_dockerfile # 指定Dockerfile文件名称
image: my_php:7.4.33-fpm #自定义镜像名和版本号
container_name: php #容器名称 可自定义
restart: always #是否开机自启
ports: #端口映射 生产环境不建议暴露9000端口
- 9000:9000
volumes: #容器文件映射
- /opt/web/html:/var/www/html
- /opt/web/config/php.ini:/usr/local/etc/php/php.ini
networks:
mynet:
ipv4_address: 172.30.0.3
mysql:
image: mysql:5.7 #使用的镜像
container_name: mysql #容器名字 可自定义
restart: always
ports: #端口映射 生产环境不建议暴露3306端口
- 3306:3306
volumes: #容器文件映射
- /opt/web/config/mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=123456 #定义root密码 可自定义
- MYSQL_DATABASE=web #创建网站数据库 可自定义
- MYSQL_USER=webuser #创建网站数据库管理账户 可自定义
- MYSQL_PASSWORD=123456 #定义网站数据库管理账户密码 可自定义
networks:
mynet:
ipv4_address: 172.30.0.4
redis:
image: redis:5.0.12
container_name: redis
restart: always
ports: #端口映射
- 6379:6379
networks:
mynet:
ipv4_address: 172.30.0.5
#volumes: #容器文件映射
# - /opt/web/config/redis.conf:/usr/local/etc/php/php.ini
#environment:
# - appendonly=yes
# - requirepass=123456
# - redis-server=/usr/local/etc/redis/redis.conf
###########监控架构###############
#构建prometheus容器 用于监控指标
prometheus:
image: prom/prometheus #使用的镜像
container_name: prometheus #容器名字 可自定义
restart: always #开机自启
ports: #端口映射
- 9090:9090
volumes: #容器文件映射
- /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
mynet:
ipv4_address: 172.30.0.6
#构建grafana容器 用于可视化指标
grafana:
image: grafana/grafana #使用的镜像
container_name: grafana #容器名字 可自定义
restart: always #开机自启
ports: #端口映射
- 3000:3000
volumes: #容器文件映射
- /opt/grafana-storage:/var/lib/grafana
networks:
mynet:
ipv4_address: 172.30.0.7
#构建cAdvisor容器 用于暴露docker指标
cadvisor:
image: google/cadvisor #使用的镜像
container_name: cadvisor #容器名字 可自定义
restart: always #开机自启
# device: /dev/kmsg #监控磁盘
ports: #端口映射
- 8080:8080
volumes: #容器文件映射
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /dev/disk/:/dev/disk:ro
environment:
- "device=/dev/kmsg" #监控磁盘
networks:
mynet:
ipv4_address: 172.30.0.8
#构建nginx_exporter容器 用于暴露Nginx指标
nginx_exproter:
image: nginx/nginx-prometheus-exporter:0.11
container_name: nginx_exporter
hostname: nginx_exporter
command: #填写nginx容器IP
- '-nginx.scrape-uri=http://172.30.0.2/stub_status'
restart: always
ports:
- 9113:9113
networks:
mynet:
ipv4_address: 172.30.0.9
#构建mysqld-exporter容器 用于暴露mysql指标
mysqld-exporter:
image: prom/mysqld-exporter #使用的镜像
container_name: mysqld-exporter #容器名字 可自定义
restart: always #开机自启
environment:
# 连接mysql
# DATA_SOURCE_NAME="用户名:密码@(mysql地址:3306)
# 测试阶段可使用root 非测试请创建用于监控mysql的账户
- "DATA_SOURCE_NAME=root:123456@(192.168.1.19:3306)/"
ports: #映射端口
- 9104:9104
networks:
mynet:
ipv4_address: 172.30.0.10
#构建php-fpm_exporter容器 用于暴露php指标
php-fpm_exporter:
image: hipages/php-fpm_exporter
container_name: php-fpm_exporter
restart: always
environment:
# php容器地址
- 'PHP_FPM_SCRAPE_URI="tcp://172.30.0.3:9000/status"'
ports:
- 9253:9253
networks:
mynet:
ipv4_address: 172.30.0.11
#构建node-exporter容器 用于暴露主机指标
node-exporter:
image: prom/node-exporter
container_name: node-exporter
restart: always #开启自启
volumes: #容器文件映射
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
ports:
- 9100:9100
networks:
mynet:
ipv4_address: 172.30.0.12
构建容器
docker-compose up -d
添加容器目录权限
docker exec -it nginx chmod -R 777 /var/www/html && docker exec -it php chmod -R 777 /var/www/html
重启
docker restart nginx && docker restart php
查看创建情况
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad9a8399fa61 prom/mysqld-exporter "/bin/mysqld_exporter" 58 minutes ago Up 57 minutes 0.0.0.0:9104->9104/tcp, :::9104->9104/tcp mysqld-exporter
2dc5ad2ec997 nginx/nginx-prometheus-exporter:0.11 "/usr/bin/nginx-prom…" About an hour ago Up About an hour 0.0.0.0:9113->9113/tcp, :::9113->9113/tcp nginx_exporter
6e34a82ef49c grafana/grafana "/run.sh" 2 hours ago Up 2 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp grafana
9c47827a6faf hipages/php-fpm_exporter "/php-fpm_exporter s…" 2 hours ago Up 2 hours 0.0.0.0:9253->9253/tcp, :::9253->9253/tcp php-fpm_exporter
23f2b3d69acf google/cadvisor "/usr/bin/cadvisor -…" 2 hours ago Up 2 hours 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cadvisor
d9dd9081dd80 prom/prometheus "/bin/prometheus --c…" 2 hours ago Up 22 minutes 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus
48ba5f8b4367 prom/node-exporter "/bin/node_exporter" 2 hours ago Up 2 hours 0.0.0.0:9100->9100/tcp, :::9100->9100/tcp node-exporter
7346fec8856f my_nginx:1.22 "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:9010->9010/tcp, :::9010->9010/tcp nginx
ef1b89398a2a mysql:5.7 "docker-entrypoint.s…" 5 hours ago Up 3 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
782934ccbe91 my_php:7.4.33-fpm "docker-php-entrypoi…" 5 hours ago Up 3 hours 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp php
92d94e34d37c redis:5.0.12 "docker-entrypoint.s…" 5 hours ago Up 3 hours 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp
3.测试
浏览器输入服务器的IP地址,显示403即为成功,因为没有部署网站所以显示403的错误代码
将网站源码放入/opt/web/html内即可
prometheus访问地址: ip+9090
Grafana访问地址: ip+3000