1、安装 Linux 系统
略,可使用
VMware
或阿里云等其他服务器,装完后顺便换个源,装个JDK
2、安装 docker
略,不同系统有不同操作步骤
3、远程连接
通过
ssh
进行远程连接,使用scp
进行文件上传与下载,无需下载其他软件,以下是在Windows Terminal
中进行操作ssh 用户名@域名或IP地址 #回车后输入该用户密码即可
scp 本地文件路径 用户名@域名或IP地址:服务器文件路径 #上传文件, 若要上传文件夹则加上 -r scp 用户名@域名或IP地址:服务器文件路径 本地文件路径 #下载文件, 若要下载文件夹则加上 -r
4、拉镜像
- Nacos
docker pull nacos/nacos-server
- Sentinel
docker pull bladex/sentinel-dashboard
- MySQL
docker pull mysql
- Nginx
docker pull nginx
5、开始搭建
5.1 启动 Docker
略,不同系统启动命令不同,另外记得配置一下开机启动
5.2 自定义网段
自定义网段的好处就是避免每次启动容器时动态分配
IP
地址,导致频繁修改nginx.conf
docker network create --subnet=192.168.32.0/24 cying #ip可自己指定, cying是网段名, 可自己指定 docker network ls #查看当前已有网段
5.2 Nacos
docker run -d\
-p 8848:8848\
-e TZ="Asia/Shanghai"\
--env MODE=standalone\
--restart=always\
--name Nacos\
--net cying\
--ip 192.168.32.10\
nacos/nacos-server
-------------------------
请修改参数:--name、--net、--ip
其中:
--net 和 --ip 根据自定义网段来设置
5.3 Sentinel
docker run -d\
-p 8858:8858\
-e TZ="Asia/Shanghai"\
--restart=always\
--name Sentinel\
--net cying\
--ip 192.168.32.11\
bladex/sentinel-dashboard
-------------------------
请修改参数:--name、--net、--ip
其中:
--net 和 --ip 根据自定义网段来设置
5.4 MySQL
前期准备
mkdir /docker/v/mysql/data
vim /docker/v/mysql/my.conf
# /docker/v/mysql 是我个人习惯, 读者可自行修改
my.conf
内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
创建容器
docker run -d\
-p 3306:3306\
-e TZ="Asia/Shanghai"\
-e MYSQL_ROOT_PASSWORD=root\
--restart=always\
--name MySQL\
--net cying\
--ip 192.168.32.9\
-v /docker/v/mysql/config/my.conf:/etc/my.conf\
-v /docker/v/mysql/data:/var/lib/mysql\
mysql
-------------------------
请修改参数:--name、--net、--ip、-v
其中:
--net 和 --ip 根据自定义网段来设置
-v 请将 /docker/v/mysql 修改为自己的路径
5.5 Nginx
前期准备
mkdir /docker/v/nginx
vim /docker/v/nginx/nginx.conf
nginx.conf
内容:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
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;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#server {
#}
include /etc/nginx/conf.d/*.conf;
}
创建容器
docker run -d\
-p 80:80\
-e TZ="Asia/Shanghai"\
--restart=always\
--name Nginx\
--net cying\
--ip 192.168.32.12\
-v /docker/v/nginx/nginx.conf:/etc/nginx/nginx.conf\
nginx
-------------------------
请修改参数:--name、--net、--ip、-v
其中:
--net 和 --ip 根据自定义网段来设置
-v 请将 /docker/v/nginx 修改为自己的路径
6、使用
到此为止,环境就配置完成了,如何使用呢?
- 这里以
SpringCloud
微服务为例,每个微服务都有自己的端口,设有如下微服务
Student
服务:port=2001
,RequestMapping=/stu/**
Department
服务:port=2002
,RequestMapping=/dept/**
- 微服务中的
Nacos
、Sentinel
、MySQL
服务器地址就可以直接使用Linux
服务器地址 + 对应docker
容器暴露的端口号了- 再在
nginx.conf
的server
块添加配置,令/stu
转发到2001
端口,/dept
转发到2002
端口即可server { ··· location ~ /stu { proxy_pass http://ip_addr:2001 } location ~ /dept { proxy_pass http://ip_addr:2002 } ··· }
7、附 Tomcat 配置
- 拉取
Tomcat
docker pull tomcat
- 启动
tomcat
docker run -d --name Tomcat -p 8080:8080 tomcat
- mkdir /docker/v/tomcat
- 复制配置文件、
webapps
docker cp tomcat:/usr/local/tomcat/conf/tomcat-user.xml /docker/v/tomcat/tomcat-user.xml docker cp tomcat:/usr/local/tomcat/webapps.dist /docker/v/tomcat/webapps
- 编辑
tomcat-user.xml
,先检查文件权限并根据情况做出调整<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager-gui" /> <role rolename="manager-script" /> <role rolename="manager-status" /> <role rolename="manager-jmx" /> <user username="tomcat" password="root" roles="manager-gui,manager-script,manager-status,manager-jmx /> </tomcat-users>
- 编辑
webapps/manager/META-INF/context.xml
,先检查文件权限并根据情况做出调整<?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="false" privileged="true" > < !-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -- > <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> </Context>
- 干掉第一个容器
docker stop Tomcat docker rm Tomcat
- 创建新的容器
docker run -d\ -p 8080:8080\ -e TZ="Asia/Shanghai"\ --restart=always\ --name Tomcat\ --net cying\ --ip 192.168.32.8\ -v /etc/localtime:/etc/localtime:ro\ -v /docker/v/tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml\ -v /docker/v/tomcat/webapps:/usr/local/tomcat/webapps\ tomcat ------------------------- 请修改参数:--name、--net、--ip、-v 其中: --net 和 --ip 根据自定义网段来设置 -v 请将 /docker/v/tomcat 修改为自己的路径
最后配上效果图,可能还有一些不完善的地方,欢迎大家指点