服务器环境-安装基础环境
虚拟机CentOS系统安装VmWare安装Linux镜像虚拟机IP修改安装开发常用环境(宝塔面板)宝塔安装命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
虚拟机CentOS系统安装
VmWare安装Linux镜像
CentOS 最小镜像:
虚拟机IP修改
安装开发常用环境(宝塔面板)
宝塔命令(全部yes):yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
选择要安装的基础组件
修改面板基本配置
取消宝塔面板安全地址登录限制
关闭安全入口:rm -f /www/server/panel/data/admin_path.pl
磁盘扩容参考:https://www.cnblogs.com/willamwang/p/12082465.html
常用组件安装
Docker镜像加速地址
地址1:http://hub-mirror.c.163.com
地址2:https://registry.docker-cn.com
宝塔软件商店:Redis,Memcached,MongoDB,Docker,PM2
Jenkins的Docker版本安装:
// 如果目录没有权限就手动去宿主机给一下
docker run -d -p 18080:8080 --name jenkins -v /home/docker/jenkins_home:/var/jenkins_home -v /home/docker/host_home:/home -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone jenkins/jenkins:lts-centos7-jdk8
Jenkins
// 如果目录没有权限就手动去宿主机给一下
docker run -d -p 18080:8080 --name jenkins -v /home/docker/jenkins_home:/var/jenkins_home -v /home/docker/host_home:/home -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone jenkins/jenkins:lts-centos7-jdk8
Jenkins安装:
下载:http://mirror.xmission.com/jenkins/war-stable/2.235.5/jenkins.war
安装与映射
SonarQube安装(执行即可使用)
默认账号密码:admin/admin
MySQL版本:docker run -d --name sonarqube -p 9090:9000 -p 9092:9092 -e "SONARQUBE_JDBC_USERNAME=[数据库用户名]" -e "SONARQUBE_JDBC_PASSWORD=[数据库密码]" -e "SONARQUBE_JDBC_URL=jdbc:mysql://[IP地址]:3306/[数据库名称]?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" -v/home/docker//sonarqube/data:/opt/sonarqube/data -v/home/docker//sonarqube/extensions:/opt/sonarqube/extensions -v/home/docker/sonarqube/logs:/opt/sonarqube/logs sonarqube:7.1
PostgreSQL版本:docker run -d --name sonarqube -p 9090:9000 -p 9092:9092 -e "SONARQUBE_JDBC_USERNAME=[数据库用户名]" -e "SONARQUBE_JDBC_PASSWORD=[数据库密码]" -e "SONARQUBE_JDBC_URL=jdbc:postgresql://[IP地址]:5432/[数据库名称]" -v /home/docker/sonarqube/conf:/opt/sonarqube/conf -v /home/docker/sonarqube/data:/opt/sonarqube/data -v /home/docker/sonarqube/extensions:/opt/sonarqube/extensions -v /home/docker/sonarqube/logs:/opt/sonarqube/logs sonarqube:9.1.0-community
安装过程中如果提示: max_map_count 数量太低
# 修改系统参数
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
安装成功后可以访问
生成Token:Security -> Users -> Token
安装汉化包和Java分析插件:
从宿主机复制插件到容器
docker cp /[路径]/[文件名] [容器名称]:/[容器内路径]
安装jenkins配置插件(SonarQube Scanner)
配置Sonar:
配置扫描器地址:
SonarScanner默认配置
sonar.projectKey=${JOB_NAME}
sonar.projectName=${JOB_NAME}
sonar.projectVersion=${BUILD_VERSION}
sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
配置参考:https://www.jb51.net/article/196239.htm
如果Sonar安装的FindBug插件,使用Scanner会报错,写在FindBug即可
MySQL安装
# Mac
docker run -d -p 3306:3306 --restart=always --privileged=true -v ~/Desktop/JavaDev/docker/mysql/log:/var/log/mysql -v ~/Desktop/JavaDev/docker/mysql/data:/var/lib/mysql -v ~/Desktop/JavaDev/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v ~/Desktop/JavaDev/docker/mysql/mysql-files:/var/lib/mysql-files -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai --name mysql mysql:8.0
# Centos
docker run -d -p 3306:3306 --restart=always --privileged=true -v /home/docker/mysql/log:/var/log/mysql -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/docker/mysql/mysql-files:/var/lib/mysql-files -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai --name mysql mysql:8.0
Redis安装
# Mac
docker run --name redis -d -p 6379:6379 -v ~/Desktop/JavaDev/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v ~/Desktop/JavaDev/docker/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
# CentOS (配置文件需要从容器中复制到宿主机)
docker run --name redis -d -p 6379:6379 -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
参数解析
【 --restart=always】 开机启动,失败也会一直重启;
【–log-opt max-size=100m】意味着一个容器日志大小上限是100M;
【–log-opt max-file=2】意味着一个容器有2个日志,分别是id+.json、id+1.json;
【-p 6379:6379】 将宿主机6379端口与容器内6379端口进行映射;
【-v】 将宿主机目录或文件与容器内目录或文件进行挂载映射;
【-itd】 i:以交互模式运行容器,通常与 -t 同时使用; t:为容器重新分配一个伪输入终端,通常与 -i 同时使用; d:表示后台启动redis;
【–name】 给容器命名;
【–appendonly yes】 开启redis 持久化;
【–requirepass !qwe123】 强烈建议设置密码,并且将密码设置为高强度复杂;
【redis-server /etc/redis/redis.conf】 以配置文件启动redis,加载容器内的conf文件;
配置文件内容,复制进去就可以用
# Redis 服务器的访问密码
requirepass 1qaz2wsx123
# Redis 最大客户端连接数。默认情况下这个值是 10000
maxclients 10000
# 指定 Redis 监听的 IP 地址。默认是 127.0.0.1,意味着 Redis 只能接受本机连接。设置为 0.0.0.0 可以允许任何 IP 连接
# 指定redis监听的网卡,不设定将监听所有。如果有自己网卡,需要将网卡ip放到127前面,否则建立集群时会无法互相连通
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
bind 0.0.0.0
# 开启保护模式,如果未设置密码,将不允许外部访问,只能本地访问。关闭后,不设置密码也能远程链接了,会危险。
# 默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码 和bind,可以开启。否则最好关闭,设置为no。
protected-mode yes
# Redis 监听的端口,默认是 6379
port 6379
# TCP 监听队列中的连接数。增加此值可以增加服务器的监听能力
tcp-backlog 511
# 客户端空闲超时时间,单位是秒。超过这个时间客户端没有活动,则关闭连接。
timeout 0
# 设置 TCP keepalive 的活动时间,以秒为单位。这有助于检测死连接并回收资源。
tcp-keepalive 300
# 在后台运行 yes开启,no关闭(老版本默认)
daemonize yes
#
supervised no
# redis的进程文件
pidfile /www/server/redis_6379.pid
# 日志级别,可以是 debug、verbose、notice、warning 等。
loglevel notice
# 日志文件的路径。设置为空则不记录日志。
# logfile "/www/server/redis/redis.log"
logfile ""
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
# and optionally update the other syslog parameters to suit your needs.
# syslog-enabled no
# Specify the syslog identity.
# syslog-ident redis
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0
# 当前启动16个数据库,意思是链接当前redis后,可以用select 1/2/3来切换到不同的库,相当于mysql中的数据库了,这样好处是一个应用可以一个库,清理当前数据不会影响到其他库。
databases 16
#
always-show-logo yes
#
save 900 1
save 300 10
save 60 10000
#
stop-writes-on-bgsave-error yes
#
rdbcompression yes
#
rdbchecksum yes
#
dbfilename dump.rdb
#
dir /www/server/redis/
#
replica-serve-stale-data yes
#
replica-read-only yes
#
repl-diskless-sync no
#
repl-diskless-sync-delay 5
#
# repl-ping-replica-period 10
#
# repl-timeout 60
#
repl-disable-tcp-nodelay no
#
# repl-backlog-size 1mb
#
# repl-backlog-ttl 3600
#
replica-priority 100
#
lazyfree-lazy-eviction no
#
lazyfree-lazy-expire no
#
lazyfree-lazy-server-del no
#
replica-lazy-flush no
#
appendonly yes
#
appendfilename "appendonly.aof"
#
no-appendfsync-on-rewrite no
#
auto-aof-rewrite-percentage 100
#
auto-aof-rewrite-min-size 64mb
#
aof-load-truncated yes
#
aof-use-rdb-preamble yes
#
lua-time-limit 5000
#
slowlog-max-len 128
#
notify-keyspace-events ""
#
hash-max-ziplist-entries 512
#
hash-max-ziplist-value 64
#
list-max-ziplist-size -2
#
list-compress-depth 0
#
set-max-intset-entries 512
#
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
#
hll-sparse-max-bytes 3000
#
stream-node-max-bytes 4096
#
stream-node-max-entries 100
#
activerehashing yes
#
hz 10
#
dynamic-hz yes
#
aof-rewrite-incremental-fsync yes
#
rdb-save-incremental-fsync yes
ElasticSearch安装
docker run --name elasticsearch -e JAVA_OPTS='-Xms512m -Xmx512m' -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
插件:安装中文分词器(需要和ES的版本保持一致)
# 1.进入容器
docker exec -it 容器名 /bin/bash
# 2.在线下载并安装,注意:版本号要一
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
# 3.进入到 plugins 目录可以看到IK分词器已经安装成功
WebUI工具(Dejavu)
docker run --name dejavu -p 1358:1358 -d appbaseio/dejavu
安装Kibana
Kibana版本要和ElasticSearch一致
docker run --name kibana -p 5601:5601 --link elasticsearch:elasticsearch -d kibana:7.7.0
修改界面语言为中文:
vi /usr/share/kibana/config/kibana.yml
安装Logstach
Logstash版本要和ElasticSearch一致; 如果有该配置的需求,指定挂载目录,可手动先建立挂在的目录
docker run --name logstash -d -p 5044:5044 -p 9600:9600 --link elasticsearch:elasticsearch -v /home/docker/logstash/config/:/usr/share/logstash/config/ logstash:7.7.0
插件安装:logstash-output-elasticsearch
// 【在bin目录中去执行命令】
./logstash-plugin install logstash-output-elasticsearch
执行配置:center_goods_spu.conf
# 必须写上配置的完整路径,避免配置目录中.conf和.yml文件共存造成异常
./bin/logstash -f /usr/share/logstash/config/center_goods_spu.conf
配置完整实例
input {
# 可以配置多个数据源
jdbc {
# jar包目录必须在目录[ logstash-core/lib/jars ]下
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.22.jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://[IP地址]:3306/cloud_center?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
jdbc_user => "数据库账号"
jdbc_password => "数据库密码"
statement => "SELECT * FROM center_goods_spu WHERE update_time >= :sql_last_value"
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
schedule => "* * * * *"
# 索引类型
type => "center_goods_spu "
}
jdbc {
# jar包目录必须在目录[ logstash-core/lib/jars ]下
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.22.jar"
jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://[IP地址]:3306/cloud_center?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true"
jdbc_user => "数据库账号"
jdbc_password => "数据库密码"
# 执行的sql 文件路径+名称
statement_filepath => "/home/mysqlSQL/center_goods_category.sql"
jdbc_paging_enabled => "true"
jdbc_page_size => "1000"
schedule => "* * * * *"
# 索引类型
type => "center_goods_spu "
}
}
output {
# 可以配置多个数据源
if [type]=="center_goods_spu" {
elasticsearch {
hosts => ["192.168.0.248:9200"]
index => "center_goods_spu"
document_type => "center_goods_spu"
document_id => "%{id}"
}
if [type]=="center_goods_category" {
elasticsearch {
hosts => ["192.168.0.248:9200"]
index => "center_goods_category"
document_type => "center_goods_category"
document_id => "%{id}"
}
}
stdout {
codec => rubydebug
}
}
处理Logstash链接ES问题
问题:LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError
处理方式:
处理Logstash中“path.data”问题
处理方式:删除目录[/usr/share/logstash/data]中的[.lock]文件
安装Kafka
# 安装配套zookeeper
docker run --name=zookeeper -d -p 2181:2181 --privileged=true wurstmeister/zookeeper
# 安装配套kafka
docker run --name kafka -d -p 9092:9092 --privileged=true -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.1.248:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.248:9092 -e KAFKA_LISTENERS=PLAINTEXT://:9092 wurstmeister/kafka
# 安装Kafka可视化管理工具
docker run --name kafka-manager -d --link zookeeper:zookeeper --link kafka:kafka -p 9001:9000 --env ZK_HOSTS=zookeeper:2181 sheepkiller/kafka-manager
查看kafka运行日志报错
未完待续。。。
安装skywalking
docker run --name skywalking -d -p 1234:1234 -p 11800:11800 -p 12800:12800 --link elasticsearch:elasticsearch -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 apache/skywalking-oap-server:6.6.0-es7
安装skywalking-ui
docker run --name skywalking-ui -d -p 8899:8080 --link skywalking:skywalking -e SW_OAP_ADDRESS=skywalking:12800 --restart always apache/skywalking-ui:6.6.0
服务启动后效果如下
错误日志查看
服务优化信息图表
下载Agent包
连接:https://archive.apache.org/dist/skywalking/6.6.0/apache-skywalking-apm-6.6.0.tar.gz
解压缩:tar -zxvf 压缩文件名.tar.gz
启动服务查看监听
#删除进程
kill -9 $(jps | grep [服务Jar包].jar | awk '{print $1}')
nohup java -Xms256m -Xmx512m -javaagent:/[skywalking apm路径]/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=[服务名] -Dskywalking.collector.backend_service=localhost:11800 -jar /[服务路径]/[服务Jar包].jar > /[服务路径]/[服务Jar包].log 2>&1 &
安装Docker Nginx
docker run -d -–name nginx -p 80:80 -p 443:443 -v /home/docker/nginx/html:/usr/share/nginx/html -v /home/docker/nginx/config:/etc/nginx -v /home/docker/nginx/log:/var/log/nginx registry.cn-hangzhou.aliyuncs.com/kaitian0079/nginx:stable
修改nginx配置
新增一个nginx配置 xxx.conf
server
{
listen 2888;
server_name [服务名];
access_log /[路径]/logs/access.log;
error_log /[路径]/logs/error.log;
location / {
root /[路径]/dist;
index index.html index.htm;
proxy_ssl_session_reuse off;
try_files $uri $uri/ /index.html =404;
}
location /api/ {
proxy_pass http://127.0.0.1:2828/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_session_reuse off;
}
}
拷贝文件目录到远程服务器
scp -r /[本地目录] root@192.168.0.xxx:/[远程目录]
拷贝远程文件目录到本地服务器
scp -r root@192.168.0.xxx:/[远程目录] /[本地目录]
压缩和解压命令
压缩:tar zcf /[路径]/[文件名].tar.gz /[路径]
解压:tar -xzvf /[路径]/[文件名].tar.gz /[路径]
登录到远程服务器
ssh [用户名]@[IP地址]
运行Consul
运行:docker run -d -p 8500:8500 -v /home/consul:/consul/data --name=consul consul:latest agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
配置导出:consul kv export --http-addr=http://[ip地址]:8500 >consul_kv.json
配置导入:consul kv import --http-addr=http://[ip地址]:8500 @consul_kv.json
运行Nacos
docker run --name nacos -p 8848:8848 \
--privileged=true \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-d nacos/nacos-server
Nacos2.x以上版本安装命令如下(改版后增加了新的端口拓展)
docker run --name nacos
-p 7848:7848
-p 8848:8848
-p 9848:9848
-p 9849:9849
--privileged=true
-e JVM_XMX=1024m
-e JVM_XMS=512m
-e MODE=standalone
-e PREFER_HOST_MODE=hostname
-d nacos/nacos-server:v2.1.2
Nacos2 集群模式,指定数据库;2.1.2匹配mysql5;如果使用mysql8请注意版本
# 需要手动从容器复制目录中的配置,并且出初始化mysql的脚本
docker run --name nacos \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMX=1024m \
-e JVM_XMS=512m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.42.128 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8mb4&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e TIME_ZONE='Asia/Shanghai' \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_USERNAME=nacos \
-e NACOS_AUTH_PASSWORD=xt#911218 \
-v /home/docker/nacos/logs:/home/nacos/logs \
-v /home/docker/nacos/data:/home/nacos/data \
-v /home/docker/nacos/conf:/home/nacos/conf \
-d nacos/nacos-server:v2.1.2
安装RabbitMQ
docker run -dit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
// 多端口放行和容器挂在的命令版本
docker run -dit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 1883:1883 -p 61613:61613 -v /home/docker/rabbitmq:/var/lib/rabbitmq rabbitmq:management
// 安装插件,请进入docker容器后台
// 1. 查看所有可以安装的插件
rabbitmq-plugins list
// 2. 启用插件,请挨个执行
rabbitmq-plugins enable [xxx插件名称]
rabbitmq-plugins enable rabbitmq_mqtt
rabbitmq-plugins enable rabbitmq_stomp
rabbitmq-plugins enable rabbitmq_web_mqtt
rabbitmq-plugins enable rabbitmq_web_stomp
查看安装插件对应的接口
插件下载实例
插件下载地址:https://www.rabbitmq.com/community-plugins.html
找到rabbitmq_delayed_message_exchange下载
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/tag/3.12.10
安装xxl-job-admin
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false --spring.datasource.username=root --spring.datasource.password=root --xxl.admin.login=false" -p 9080:8080 --name xxl-job-admin -d xuxueli/xxl-job-admin:2.2.0
安装ZipKin
docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin
安装Sentinel
docker run --name sentinel -d -p 8858:8858 -p 8719:8719 bladex/sentinel-dashboard
安装Zookeeper
docker run -d --name zookeeper-server -p 2181:2181 -e TZ="Asia/Shanghai" -e ALLOW_ANONYMOUS_LOGIN=yes -v /home/docker/zookeeper/data:/data bitnami/zookeeper:latest
安装Kafka
// 安装kafka必须安装zookeeper;独立网段,不对外开放zookeeper端口
// app-bridge:网络名称 --driver :网络类型为bridge
docker network create app-bridge --driver bridge
// 安装zookeeper; 有时候使用新建的网络有问题,可选择使用
docker run -d --name zookeeper-server -p 2181:2181 [--network app-bridge] -e TZ="Asia/Shanghai" -e ALLOW_ANONYMOUS_LOGIN=yes -v /home/docker/zookeeper/data:/data bitnami/zookeeper:latest
// 安装kafka; 链接zookeeper的时候可以使用容器名称; 监听端口IP配置宿主机内网IP
docker run -d --name kafka-server -p 9092:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ZOOKEEPER_CONNECT=[172.17.0.3/zookeeper-server]:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://[服务器内网IP]:9092 -v /home/docker/kafka:/kafka bitnami/kafka:latest
安装Kafka可视化工具
···
// 默认账号密码:admin/admin
docker run -d --name kafka-map -p 18080:8080 -v /home/docker/kafka-map/data:/usr/local/kafka-map/data -e DEFAULT_USERNAME=admin -e DEFAULT_PASSWORD=admin dushixiang/kafka-map:latest
···
安装MINIO
docker run -p 9000:9000 -p 9001:9001 --name minio -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin123456" -v /home/docker/minio/data:/data -v /home/docker/minio/config:/root/.minio -v /etc/localtime:/etc/localtime minio/minio server /data --console-address ":9001"
安装JumpServer堡垒机
-- 生成服务器秘钥
[root@xxxxx ~]# if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
[root@xxxxx ~]# if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi
-- Docker安装堡垒机
docker run -d --name=jumpserver
-v /home/docker/jump_server_home/data:/opt/jumpserver/data
-v /home/docker/jump_server_home/koko:/opt/koko/data
-v /home/docker/jump_server_home/lion:/opt/lion/data
-p 8000:80
-p 2222:2222
-e SECRET_KEY=$SECRET_KEY
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN
-e DB_HOST=【数据库IP】
-e DB_PORT=3306
-e DB_USER=【数据库用户】
-e DB_PASSWORD="【数据库密码】"
-e DB_NAME=【数据库名称】
-e REDIS_HOST=【Redis IP】
-e REDIS_PORT=6379
-e REDIS_PASSWORD="xckj1234."
jumpserver/jms_all:v2.5.0
安装完成后效果如下
Nexus环境配置
docker run -d --name nexus3 -p 8081:8081 -v ~/home/docker/nexus:/nexus-data sonatype/nexus3
MySQL8安装
docker run --name mysql8 -p 3306:3306 --privileged=true -v /home/docker/mysql8/mysql:/etc/mysql -v /home/docker/mysql8/logs:/logs -v /home/docker/mysql8/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
# 需要注意,mysql需要放行ip限制,mysql8的操作有所改变;
# 参考资料地址:https://blog.csdn.net/a1150499208/article/details/131437199
MinDoc安装
docker run -d \
--restart always \
--name center_mindoc \
-p 8181:8181 \
-v /home/docker/mindoc/conf:/mindoc/conf \
-v /home/docker/mindoc/static:/mindoc/static \
-v /home/docker/mindoc/views:/mindoc/views \
-v /home/docker/mindoc/uploads:/mindoc/uploads \
-v /home/docker/mindoc/runtime:/mindoc/runtime \
-v /home/docker/mindoc/database:/mindoc/database \
-e MINDOC_RUN_MODE=prod \
-e MINDOC_DB_ADAPTER=mysql \
-e MINDOC_DB_DATABASE=mindoc \
-e MINDOC_DB_HOST=xxx.aliyuncs.com \
-e MINDOC_DB_PORT=3306 \
-e MINDOC_DB_USERNAME=xxx \
-e MINDOC_DB_PASSWORD=xxx \
-e MINDOC_CACHE=true \
-e MINDOC_CACHE_PROVIDER=file \
-e MINDOC_ENABLE_EXPORT=false \
-e MINDOC_BASE_URL= \
-e MINDOC_CDN_IMG_URL= \
-e MINDOC_CDN_CSS_URL= \
-e MINDOC_CDN_JS_URL= \
registry.cn-hangzhou.aliyuncs.com/kaitian0079/mindoc:v2.2-beta.1
代理IP资源池
docker run -d --name proxy_pool --env DB_CONN=redis://:xxxxxx@host_redis7:6379/0 -p 5010:5010 jhao104/proxy_pool:latest
Docker常规操作
容器中目录授权
# Root账号进入container
docker exec -it --user root [容器名称] /bin/bash
chmod 777 /[需授权目录]
更多推荐
所有评论(0)