一. vagrant 安装centos
出现:Your VM has become “inaccessible.” Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from.
Please open VirtualBox and clear out your inaccessible virtual machines or find a way to fix them.
step1:命令行vagrant ,是否显示
step2:删除.vagrant文件后重新vagrant up
1.vagrant init centos/7
2.开启 vagrant up
注意:vagrant2.2.5 和 vitualbox6.1版本不兼容
解决: https://blog.csdn.net/weixin_43838639/article/details/106210459
3.连接虚拟机 vagrant ssh
4.常用指令
重启 vagrant reload
关闭 vagrant halt
二. centos安装docker
设置root账户密码
sudo passwd root
输入密码
输入密码
安装docker
yum install docker
修改配置文件
vi /etc/sysconfig/selinux
将标红处修改为图中数据
ocker安装完启动失败(code=exited, status=1/FAILURE)错误解决办法
解决方法,修改docker文件,具体命令:vi /etc/sysconfig/docker,在--selinux-enabled后面添加=false。如下图所示:
启动docker
systemctl enable docker //开机启动
systemctl start docker //启动docker
干净地卸载docker
[root@localhost vagrant]# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2. rm -rf /etc/systemd/system/docker.service.d
3. rm -rf /var/lib/docker
删除docker /var/lib/docker报Device or resource busy问题处理
原因:
在建立容器的时候做了目录的挂载,没有卸载,所以Device or resource busy
解决方法:
查找挂载的目录
cat /proc/mounts | grep "docker" 卸载 umount /var/lib/docker/containers/ rm -rf /var/lib/docker/*
删除docker目录
4. rm -rf /var/run/docker
安装yum
https://blog.csdn.net/weixin_42390329/article/details/107733749
本地上传文件到服务器
备份镜像
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
配置阿里云镜像加速
容器镜像服务ACR->管理控制台->容器镜像服务->镜像中心->镜像加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://plp7lkav.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
三.docker安装mysql等镜像
docker -run报错参考https://www.linuxprobe.com/update-kernel-centos7.html
安装或升级最新版本linux内核
1.检查已安装版本
# uname -sr
2.在 CentOS 7升级内核
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
仓库启用后,可以使用下面的命令列出可用的内核相关包:
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装最新稳定内核
# yum --enablerepo=elrepo-kernel install kernel-ml
3.设置 GRUB 默认的内核版本
打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。
重新创建内核配置
# grub2-mkconfig -o /boot/grub2/grub.cfg
重启并验证最新的内核已作为默认内核。
将容器设置自启动
docker update --restart=always 容器id
1.安装mysql
1.1.安装
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:5.7
1.2.登录
docker exec -it mysql /bin/bash
mysql -u root -p
(mysql密码)
use mysql;
grant all privileges on *.* to 'root'@'%' identified by 'mysql密码' with grant option;
1.3.问题
MySQL 插入 中文数据乱码解决:
字符编码设置为UTF-8
2.安装redis
2.1.安装
docker pull redis
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
2.2.启动
docker exec -it redis redis-cli
2.3.卸载镜像
3.配置nginx
1)docker pull nginx
mkdir nginx
mkdir nginx/conf (配置文件)
mkdir nginx/logs (日志)
mkdir nginx/www (保存的网页)
docker run -p 80:80 --name nginx-test -d nginx(获取配置)
docker cp d34c08b7c4c3:/etc/nginx/nginx.conf /mydta/nginx/conf (红色标记的是nginx-test的容器Id)
2)删除test容器,重新配置一个容器,且挂载目录
docker run -d -p 80:80 --name nginx -v /mydata/nginx/www:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mydata/nginx/logs:/var/log/nginx nginx
参考链接:https://blog.csdn.net/weixin_40461281/article/details/92586378
注意,上面链接没有生效,查看下面链接内容
https://www.cnblogs.com/dotnet261010/p/12596185.html
4.安装mongoDB
4.1安装
docker run -d --name mongo -v /usr/local/docker/mongodb/datadb:/data/db -p 27017:27017 --privileged=true mongo:5.0
4.2Docker给MongoDB设置用户密码
没有用户和密码,MongoDB的客户端NoSQL Manager for MongoDB是无法连接的
设置用户和密码如下
#admin进入 docker exec -it 容器Id mongo admin #创建用户和密码 db.createUser({ user: '账户名', pwd: '密码', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); #验证一下对不对 db.auth("账户名","密码"); #退出 exit
5.安装nacos
https://www.cnblogs.com/ameken/articles/14752315.html
5.1拉取镜像
docker pull nacos/nacos-server
5.2挂载目录
mkdir -p /mydata/nacos/logs/ #新建logs目录 mkdir -p /mydata/nacos/init.d/ vim /mydata/nacos/init.d/custom.properties #修改配置文件
5.3mysql新建nacos的数据库,并执行脚本
5.4修改配置文件custom.properties
docker exec -it nacos /bin/bash cd conf/ vim application.properties
server.contextPath=/nacos server.servlet.contextPath=/nacos server.port=8848 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=user db.password=pass nacos.cmdb.dumpTaskInterval=3600 nacos.cmdb.eventTaskInterval=10 nacos.cmdb.labelTaskInterval=300 nacos.cmdb.loadDataAtStart=false management.metrics.export.elastic.enabled=false management.metrics.export.influx.enabled=false server.tomcat.accesslog.enabled=true server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/** nacos.naming.distro.taskDispatchThreadCount=1 nacos.naming.distro.taskDispatchPeriod=200 nacos.naming.distro.batchSyncKeyCount=1000 nacos.naming.distro.initDataRatio=0.9 nacos.naming.distro.syncRetryDelay=5000 nacos.naming.data.warmup=true nacos.naming.expireInstance=true
5.5启动容器
docker run --name nacos -d -p 8848:8848 --privileged=true --restart=always -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /mydata/nacos/logs:/home/nacos/logs -v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties nacos/nacos-server
四. 人人开源
vue
1.配置环境
a. 安装node.js
官方下载node.js,node -v检查
配置淘宝镜像:npm config set registry https://registry.npm.taobao.org
a.vscode npm install
npm run dev
generater
编译错误换端口
四.分布式组件-springCloud
1.配置注册中心
https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md
2.nacos添加配置
https://blog.csdn.net/LastYHM/article/details/106440107?utm_medium=distribute.wap_relevant.none-task-blog-title-2
注意:
利用命名空间做环境隔离
配置分组(区分环境)配置集 配置ID
Spring Cloud GateWay
出现报错expected <block end>, but found BlockMappingStart解决方法
解决:routes下的冒号两边需要有空格
注意:
nacos配置持久化
1.nacos镜像下载好后,创建nacos数据库
新建数据库,运行上面的sql文件。
2.修改配置文件
docker exec-it nacos /bin/bash
cd conf/
vim application.properties
如图所示,几个地方改成自己的配置,如果没有从库的话可以把db.url.1 注释掉。
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=user db.password=pass
注意黄线部分 db.url.0后参数加上useSSL=true&serverTimezone=GMT&
保存 :wq
3.启动nacos
获取docker中的mysql容器IP(每个容器有自己的IP),记录下来。
docker inspect my_mysql | grep IPAddress
启动nacos容器
docker run --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=172.17.0.4 --env MYSQL_SERVICE_PORT=3307 --env MYSQL_SERVICE_DB_NAME=nacos-config --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env NACOS_DEBUG=n --name nacos -d -p 8848:8848 nacos/nacos-server
中级
1. sudo docker pull elasticsearch:7.4.2 //存储和检索数据
sudo mkdir -p /mydata/elasticsearch/config
sudo mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
2.sudo docker pull kibana:7.4.2 //可视化检索数据
docker run --name kibana -e ELASTICSEARCH_URL=http://10.0.0.11:9200 -p 5601:5601 -d kibana:7.4.2
问题:192.168.56.10:5601无法访问
查看log :docker logs kibana
有这个错误:kibana Unable to revive connection: http://elasticsearch:9200
解决:进入kibana容器 docker exec -it kibana /bin/bash
修改配置文件 config/kibana.yml,主机IP修改为本机IP
遇到问题:
或者dos命令杀进程如果出现 错误: 无法终止 PID (属于PID4321的子进程)为 1234 的进程。
以管理员身份运行cmd;
netstat -ano|findstr "10000"
taskkill /pid 5596 /f
10000是端口号
5596是pid
配置阿里云OSS服务
问题:解决Cannot resolve com.alibaba.cloud:aliyun-oss-spring-boot-starter:unknown 文件上传报错aliCloudEdasSdk解决
链接:https://blog.csdn.net/weixin_37056888/article/details/108953093?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242
OSS获得阿里云服务端签名——服务端签名后直传
https://www.liangzl.com/get-article-detail-212185.html
五.linux部署jar包项目
1.安装jdk
1.1 本地下载jdk-8u211-linux-x64.tar.gz
1.2 使用scp指令拷贝文件到服务器
scp ..jar root@xx:服务器上文件路径,解压
1.3 添加java环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_211
export PATH=$JAVA_HOME/bin:$PATH
1.4 使配置文件生效
source /etc/profile
1.5 查看是否安装成功
java -version
2. 部署
2.1在/usr/local 新建app文件夹,新建jasmineWeb文件夹,将jar包复制到改文件夹下。
2.2部署
首先在linux系统下前台运行jar包的和window上一样的 java -jar demo-0.0.1-SNAPSHOT.jar
后台运行进程, nohup java -jar demo-0.0.1-SNAPSHOT.jar
重定向输出日志的文件名和格式,这样关闭服务器连接窗口,项目依然还会后台运行
nohup java -jar demo-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &
查看日志
tail -f nohup.out
查看当前后台运行jar包的进程id号 ps -aux | grep java
关闭进程 kill -9 进程id
我的指令
nohup java -Xms256M -Xmx256M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -jar jasmine-admin.jar --spring.profiles.acti ve=dev >msg.log 2>&1 &
3.docker部署jar包
https://blog.csdn.net/weixin_42054155/article/details/90815393
4.部署服务后无法访问
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
Centos7开放及查看端口
https://www.cnblogs.com/heqiuyong/p/10460150.htm
- 查看开放了哪些端口
firewall-cmd --list-all
– 开放指定端口
firewall-cmd --zone=public --add-port=1935/tcp --permanent
– 关闭指定端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent
– 重启防火墙
firewall-cmd --reloadl