version: '3'
services:nacos_host:image: nacos/nacos-server:v2.2.0restart: alwayscontainer_name: nacos_hostenvironment:- MODE=standalone- PREFER_HOST_MODE=hostnamevolumes:- ./sores/nacos/log:/home/nacos/logsports:- 8848:8848- 9848:9848 #2.0新增了两个端口,需要暴露出来- 9849:9849 #2.0新增了两个端口,需要暴露出来networks:- qar-netdepends_on:- redis_hostnginx_host:image: nginx:1.23.4restart: alwayscontainer_name: nginx_hostvolumes:- ./sores/nginx/html:/usr/share/nginx/html- ./sores/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf# - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf- ./sores/nginx/logs:/var/log/nginxports:- 80:80networks:- qar-netredis_host:image: redis:7.0.4container_name: redis_hostrestart: alwayscommand: redis-server /usr/local/etc/redis.conf# command: redis-server --appendonly novolumes:- ./sores/redis/conf:/usr/local/etc- ./sores/redis/data:/dataports:- 6379:6379networks:- qar-netpgsql_host:image: postgres:10.12container_name: pgsql_hostrestart: alwaysenvironment:- POSTGRES_PASSWORD=123456volumes:- ./sores/postgres/data:/var/lib/postgresql/dataports:- 5432:5432networks:- qar-netmysql_host:image: hub.atomgit.com/amd64/mysql:8.0.34container_name: mysql_hostrestart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=123456command: >--log-bin=mysql-bin--binlog-format=row--binlog-do-db=mydb--character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--default-time-zone=+8:00--server-id=123454 # 新增的 server-id 参数volumes:- ./sores/mysql/data:/var/lib/mysqlports:- 3306:3306networks:- qar-netes_host:image: elasticsearch:7.12.1container_name: es_hostrestart: alwaysenvironment:- cluster.name=es-docker-cluster- http.host=0.0.0.0- ES_JAVA_OPTS=-Xms512m -Xmx512m- discovery.type=single-nodevolumes:- ./sores/es/data:/usr/share/elasticsearch/data- ./sores/es/plugins:/usr/share/elasticsearch/plugins- ./sores/es/logs:/usr/share/elasticsearch/logs:rwports:- 9200:9200- 9300:9300networks:- qar-netkibana_host:image: kibana:7.12.1container_name: kibana_hostrestart: alwaysenvironment:- ELASTICSEARCH_HOSTS=http://es_host:9200ports:- 5601:5601networks:- qar-netelastichd_host:image: containerize/elastichdcontainer_name: elastichd_hostrestart: alwaysports:- 9800:9800networks:- qar-net
networks:qar-net:external: true
python打包
cd /root/testevn
python3 -m venv qar_venv
source /root/testevn/qar_venv/bin/activate
pip freeze > requirements.txt
pip install -r requirements.txt
zip -r qar_venv.zip qar_venv
deactivatesource /opt/hadoopclient/client/bigdata_env
kinit QAR
HuaweiCloud@123#$
hdfs dfs -ls /qar/user/python
hdfs dfs -rm -f /qar/user/python/qar_venv.zip
hdfs dfs -put ./qar_venv.zip /qar/user/python
磁盘扩容
df -h
lsblk
growpart /dev/vda 1
parted /dev/vda
p
q
resize2fs /dev/vda11001,ss1
1002,ss2
1003,ss3
pgsql数据迁移
docker cp sqlfile.sql pgsql_hostr:/tmp/sqlfile.sql
docker exec -it pgsql_host bash -c "psql -U qar -d qardb -f /tmp/sqlfile.sql"
docker exec -it pgsql_host bash -c "psql -U qar -d qardb -f /tmp/le.sql"
nginx
server {listen 80;listen [::]:80;server_name 192.168.88.131;#access_log /var/log/nginx/host.access.log main;location / {root /usr/share/nginx/html/dist;index index.html index.htm;}location /api/ {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://192.168.88.131:8080;}#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;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}
}
部署
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun-rwxr-xr-x 1 1000 1000 39178240 Oct 26 2023 containerd
-rwxr-xr-x 1 1000 1000 12378112 Oct 26 2023 containerd-shim-runc-v2
-rwxr-xr-x 1 1000 1000 19148800 Oct 26 2023 ctr
-rwxr-xr-x 1 1000 1000 34764952 Oct 26 2023 docker
-rwxr-xr-x 1 1000 1000 63339120 Oct 26 2023 dockerd
-rwxr-xr-x 1 1000 1000 761712 Oct 26 2023 docker-init
-rwxr-xr-x 1 1000 1000 1965747 Oct 26 2023 docker-proxy
-rwxr-xr-x 1 1000 1000 15143504 Oct 26 2023 runcln -s /usr/local/docker/docker /usr/bin/docker
ln -s /usr/local/docker/containerd /usr/bin/containerd
ln -s /usr/local/docker/containerd-shim-runc-v2 /usr/bin/containerd-shim-runc-v2
ln -s /usr/local/docker/ctr /usr/bin/ctr
ln -s /usr/local/docker/dockerd /usr/bin/dockerd
ln -s /usr/local/docker/docker-init /usr/bin/docker-init
ln -s /usr/local/docker/docker-proxy /usr/bin/docker-proxy
ln -s /usr/local/docker/runc /usr/bin/runcuseradd shenhang
usermod -aG docker shenhang
groups shenhang
newgrp dockersystemctl start docker
systemctl restart dockerput -r C:\qar_file\build\docker-com /export/serverdocker version
# 手动导出镜像
docker save -o /export/mysql:8.0.34.tar hub.atomgit.com/amd64/mysql:8.0.34
docker save -o /export/node:lts-buster-slim.tar node:lts-buster-slim
docker save -o /export/nginx:1.23.4.tar nginx:1.23.4
docker save -o /export/redis:7.0.4.tar redis:7.0.4
docker save -o /export/jenkins:2.440.3-jdk17.jar jenkins/jenkins:2.440.3-jdk17
docker save -o /export/nacos-server:v2.3.0.tar nacos/nacos-server:v2.3.0
# 手动导入镜像
mkdir docker-start
cd docker-start/
docker load -i ../jenkins_2.440.3-jdk17.jar
docker load -i ../nacos-server_v2.3.0.tar
docker load -i ../redis_7.0.4.tar
docker load -i ../nginx_1.23.4.tar
docker load -i ../postgres_10.12.tar 1sudo systemctl daemon-reload
2sudo systemctl restart docker下载docker-compose
https://github.com/docker/compose/releases/tag/v2.27.0
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version> mysql -u root -p
> 123456
> use mysql;
> alter user root@'%' identified by '123456';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
> SHOW GRANTS FOR 'root'@'%';
> SELECT @@global.time_zone, @@session.time_zone
> show master status;
> exit;查看docker状态:systemctl status docker
启动docker:systemctl start docker
停止docker:systemctl stop docker
拉取镜像:docker pull 名称
查看镜像:docker images
删除镜像:docker rmi 镜像id
查看正在启动的容器:docker ps
启动容器:docker start 容器名称
查看容器信息:docker inspect mongo
进入容器:docker exec -it 容器名称 /bin/bash
查看docker网络:docker network ls
当前使用docker镜像的容器(以monggodb为例):docker container ls
查看所有容器:docker ps -a
当前正在使用的所有容器:docker container ls -all
停止容器:docker stop 名称
删除容器(容器需要停止运行再删除):docker container rm 名称
删除所有容器:docker rm $(docker ps -a -q)
查看容器IP地址:docker inspect 321a999f2ecc | grep IPAddressdocker network create qar-net
docker run --name nacos-standalone -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:v2.3.0
从容器复制到宿主机
cd /export/server
mkdir -p ./sores/nacos/data
mkdir -p ./sores/nacos/logs
mkdir -p ./sores/nacos/conf
docker cp nacos-standalone:/home/nacos/data/. ./sores/nacos/data
docker cp nacos-standalone:/home/nacos/logs/. ./sores/nacos/logs
docker cp nacos-standalone:/home/nacos/conf/. ./sores/nacos/conf
docker stop nacos-standalone
docker rm nacos-standalone
从宿主机复制到容器
# docker cp /sores/nacos/data nacos-standalone:/home/nacos/datadocker run --name my-redis -p 6379:6379 -d redis:7.0.4
mkdir -p ./sores/redis/conf
mkdir -p ./sores/redis/data
docker cp my-redis:/usr/local/etc/. ./sores/redis/conf
docker cp my-redis:/data/. ./sores/redis/data
# 需要将外部的redis.conf的配置文件考入./sores/redis/conf
docker stop my-redis
docker rm my-redis
# 部署nginx
docker run --name my-nginx -p 80:80 -d nginx:1.23.4
mkdir -p ./sores/nginx/html
mkdir -p ./sores/nginx/conf/conf.d
mkdir -p ./sores/nginx/logs
cd ./sores/nginx/logs && touch access.log
cd ./sores/nginx/logs && touch error.log
docker cp my-nginx:/usr/share/nginx/html/. ./sores/nginx/html
docker cp my-nginx:/etc/nginx/conf.d/. ./sores/nginx/conf/conf.d
docker stop my-nginx
docker rm my-nginxdocker run -d --name my-postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:10.12
mkdir -p ./sores/pgsql/data
docker cp my-postgres:/var/lib/postgresql/data/. ./sores/pgsql/data
# ./sores/pgsql/data有配置文件
docker stop my-postgres
docker rm my-postgres
docker logs my-postgres1.92.142.112
docker exec -it pgsql_host bash
psql -p 5432 -U postgres;
create database qardb;
create user qar with password 'WhB#tR0319';
GRANT ALL privileges on database qardb TO qar;
\q
psql -p 5432 -U qar -d qardb
create table demo(id serial primary key, name varchar(20));
insert into demo(name) values('jack');
select * from demo;docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d hub.atomgit.com/amd64/mysql:8.0.34 --log-bin=mysql-bin --binlog-format=row --binlog-do-db=mydb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_cidocker exec -it some-mysql bashdocker cp some-mysql:/var/lib/mysql/. ./sores/mysql/data
docker exec -it mysql_host bash
mysql -uroot -p
password: 123456
正常
> CREATE DATABASE mydb DEFAULT CHARACTER SET utf8;
use mydb;
CREATE TABLE `customers` (`id` int(11) NOT NULL AUTO_INCREMENT,`first_name` varchar(255),`last_name` varchar(255),`email` varchar(255),PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `customers` values(null, "Sally","Thomas", "sally.thomas@acme.com");
# 安装java8和Java17
```sh
alternatives --config java
tar -zxvf /export/server/bellsoft-jdk17.0.13+12-linux-amd64.tar.gz -C ./
alternatives --install /usr/bin/java java /export/server/jdk-17.0.13/bin/java 17
tar -zxvf /export/server/bellsoft-jdk8u432+7-linux-amd64.tar.gz -C ./
alternatives --install /usr/bin/java java /export/server/jdk8u432/bin/java 8
alternatives --config
java安装maven
下载https://maven.apache.org/download.cgi,到/export/server目录,解压
tar -zxvf apache-maven-3.9.9-bin.tar.gz -C ./
# 创建软连接
ln -s /export/server/apache-maven-3.9.9/bin/mvn /usr/local/bin/mvn
验证
mvn -vmkdir -p /export/server/maven-repository
jenkins安装
echo "nohup java -jar /home/script/jenkins.war >./jenkins.log 2>&1 &" > start-jenkins.sh
admin
123456nohup java -jar jenkins.war >./jenkins.log 2>&1 &docker run \
--name jenkins \
-u root \
-d \
--privileged \
-p 8080:8080 \
-p 50000:50000 \
-v /export/server/maven:/export/server/maven \
-v /export/server/jdk17:/export/server/jdk17 \
-v /export/server/docker-start/sores/jenkins/data:/var/jenkins_home \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:2.440.3-jdk17ssh-keygen -t rsa
ssh-copy-id EDY@163.125.217.200ssh-keygen -t rsa
ssh-copy-id EDY@163.125.217.200lsof -i :8080jenkins_host:image: jenkins/jenkins:2.440.3-jdk17restart: alwaysprivileged: trueuser: rootcontainer_name: jenkins_hostvolumes:- /export/server/maven:/export/server/maven- /export/server/jdk17:/export/server/jdk17- /export/server/docker-start/base/sores/jenkins/jenkins-data:/var/jenkins_home- /usr/bin/docker:/usr/bin/docker- /var/run/docker.sock:/var/run/docker.sockports:- 8080:8080- 50000:50000networks:- qar-net
git安装
yum install git -y
# 生成免密公钥
git clone git@gitee.com:yyyyjinying/flink-project.git
git config --global user.name 'yyyyjinying'
git config --global user.email '1020066395@qq.com'
ssh-keygen -t rsa
不需要密钥
cat ~/.ssh/id_rsa.pub
JAR脚本打包执行
#!/bin/bash# 杀死特定端口上的进程
kill_processes_on_port() {local port=$1lsof -ti :$port | xargs -r kill -9
}# 检查特定端口是否被占用
check_port_in_use() {local port=$1if lsof -i :$port; thenecho "Port $port is in use."elseecho "Port $port is not in use."fi
}# 关闭旧的进程
kill_processes_on_port 8080
kill_processes_on_port 8081
kill_processes_on_port 8082
kill_processes_on_port 8084# 启动新的Java应用,不对日志输出,会有日志收集器生成日志文件nohup java -Dnacos_namespace=prod -Dnacos_username=nacos -Dnacos_password=nacos -Dnacos_host=192.168.0.252 -Dfile.encoding=UTF-8 -Xms2G -Xmx2G -jar jar/qar-gateway.jar --spring.profiles.active=prod > /dev/null 2>&1 &
nohup java -Dnacos_namespace=prod -Dnacos_username=nacos -Dnacos_password=nacos -Dnacos_host=192.168.0.252 -Dfile.encoding=UTF-8 -Xms2G -Xmx2G -jar jar/qar-auth.jar --spring.profiles.active=prod > /dev/null 2>&1 &
nohup java -Dnacos_namespace=prod -Dnacos_username=nacos -Dnacos_password=nacos -Dnacos_host=192.168.0.252 -Dfile.encoding=UTF-8 -Xms2G -Xmx2G -jar jar/qar-job-server.jar --spring.profiles.active=prod > /dev/null 2>&1 &
nohup java -Dnacos_namespace=prod -Dnacos_username=nacos -Dnacos_password=nacos -Dnacos_host=192.168.0.252 -Dfile.encoding=UTF-8 -Xms14G -Xmx14G -jar jar/qar-admin-server.jar --spring.profiles.active=prod > /dev/null 2>&1 &# 检查端口状态
check_port_in_use 8080
check_port_in_use 8081
check_port_in_use 8082
check_port_in_use 8084
maven打包
mvn clean package -D maven.test.skip=true -pl qar-admin/qar-admin-server -am
window相关操作
netstat -ano | findstr :8080
taskkill /f /pid 4044