首页 > 其他分享 >02-运维--安装软件

02-运维--安装软件

时间:2022-09-07 22:44:27浏览次数:107  
标签:02 容器 运维 -- nacos conf docker data

Linux安装

1. Sentinel

只是一个jar包,启动即可
# https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0
# https://github.com/alibaba/Sentinel/releases
1. 下载:
2. 创建目录:/data/sentinel/logs
3. 后台启动:
    nohup java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar > /data/sentinel/logs/sentinel.log 2>&1 &
4. 访问:http://1.2.3.4:8080/  从 Sentinel 1.6.0 起,Sentinel 控制台引入基本的登录功能,默认用户名和密码都是 sentinel

容器方式安装

1.安装 docker

#yum install docker -y               #centOS7自带docker,但版本比较旧 1.13
#-------------------------------------------------------------------
#参考官方文档:https://docs.docker.com/engine/install/centos/

#1.先卸载旧版本:
yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#2.通过docker仓库安装
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#3.安装docker引擎,安装完毕
yum install -y docker-ce docker-ce-cli containerd.io

systemctl start docker      #启动docker
systemctl status docker     #查看docker状态
docker version              #查看版本,20.10.14
systemctl enable docker     #开机自启动
docker ${cmd} --help        #查看命令帮助

#-------------------------------------------------------------------
vim /etc/docker/daemon.json      #加速镜像配置
    {  "registry-mirrors": ["https://xse1y7zf.mirror.aliyuncs.com"] }  #为阿里云机器的个人编码
    #阿里云---产品与服务---搜索"镜像"---容器镜像服务---镜像加速器---地址

systemctl daemon-reload
systemctl restart docker

#---------------------- 安装 docker私有仓库-------------------------#
docker pull registry                #下载镜像
docker run -d --name=my-docker-registry -p 5000:5000 registry        #创建容器

vim /etc/docker/daemon.json         #需要在使用registry的机器上配置信息
    {"insecure-registries":["1.2.4.3:5000"]}

http://1.2.4.3:5000/v2/_catalog        #验证

2. docker容器 Jenkins

1. 下载镜像:docker pull jenkins:2.32.2  #先启动一个容器,进入容器会发现:已提供了Java,但没有maven

2. 创建本地映射目录,修改目录权限, 映射本地数据卷时,本地/jenkins目录的拥有者为root,而容器中jenkins user的uid为1000
    mkdir -p /data/jenkins/home
    chown -R 1000:1000 /data/jenkins/home

3. 运行容器:
    docker run -d -p 10001:8080 -p 10002:50000 \
        -v /data/jenkins/home:/var/jenkins_home \
        -v /usr/local/maven-3.8:/usr/local/maven \
        -v /etc/localtime:/etc/localtime --name my-jenkins jenkins:2.32.2
#说明:
#    8080端口是页面访问端口,50000端口是JNLP使用到的;
#    本地的maven映射到容器中,/etc/localtime让容器使用和服务器同样的时间设置;

4. 安全启动方式:
    docker run -d -p 8101:8080 -p 8102:50000 \
        --env JAVA_OPTS="-Dhudson.model.DownloadService.noSignatureCheck=true,-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true" \
        -v /data/jenkins/home:/var/jenkins_home \
        -v /usr/local/maven-3.8:/usr/local/maven \
        -v /etc/localtime:/etc/localtime --name my-jenkins jenkins:2.32.2

5. 访问: http://1.2.4.3:10001        #默认账号:admin/admin

6. 修改镜像配置 vim hudson.model.UpdateCenter.xml
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
    #备选插件:http://mirror.xmission.com/jenkins/updates/current/update-center.json  

3. docker容器 MySQL

1. 创建目录
    mkdir -p /data/mysql/conf /data/mysql/logs /data/mysql/data

2. 下载镜像:docker pull mysql:8.0

3. 启动容器:
    docker run -d -p 3306:3306 --name my-mysqlserver \
        -e MYSQL_ROOT_PASSWORD=123456 \
        -v /data/mysql/conf:/etc/mysql/conf.d \
        -v /data/mysql/logs:/logs \
        -v /data/mysql/data:/var/lib/mysql  mysql:8.0 

4. 进入容器
    docker exec -it my-mysqlserver /bin/bash
    > mysql -uroot -p #登录MySQL

5. 数据库备份:
    docker exec xxx_id sh -c ' exec mysqldump --all-databases -uroot -p"123456" ' > /data/all-databases.sql

4.docker容器 Redis

1. 创建目录:mkdir -p /data/redis/data /data/redis/conf

2. 创建配置文件,并映射到容器中:touch /data/redis/conf/redis.conf

3. 下载镜像: docker pull redis:6.0

4. 启动容器:
    docker run -d -p 6379:6379 --name my-redis \
        -v /data/redis/data:/data \
        -v /data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf \
        redis:6.0 redis-server /usr/local/etc/redis/redis.conf

5.docker容器 Nginx

1. 创建目录:mkdir -p /data/nginx/conf /data/nginx/html

2. 下载镜像:docker pull nginx:1.21.6

3. 先启动一个容器,拷贝配置文件:
    docker run -d --name my-nginx nginx:1.21.6
    docker cp xxx_id:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
    docker rm -f xxx_id

4. 创建容器:
    docker run -d -p 80:80 --name my-nginx --restart=always \
        -v /data/nginx/html:/usr/share/nginx/html \
        -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
        -v /data/nginx/logs:/var/log/nginx  nginx:1.21.6

6.docker容器 MongoDB

docker pull mongo
docker run -di --name=mongoDB -p 27017:27017 mongo

7.docker容器 Memcached

docker pull memcached
docker run -di --name=my-memcached -p 11211:11211 memcached

8.docker容器 Http

docker 安装 httpd 服务,做一个http服务,用于包的存放仓库,在页面展示;

1. 下载镜像:docker pull httpd:2.4.53

2. 创建目录:mkdir -p /data/http/www /data/http/conf /data/http/logs

3. 先创建一个容器,把配置文件cp出来
    docker run -d httpd:2.4.53
    docker cp xxx_id:/usr/local/apache2/conf/httpd.conf /data/http/conf/httpd.conf
    docker rm -f xxx_id

4. 重新创建容器
    docker run -d --name=httpd --restart always -p 10001:80 \
        -v /data/http/www/:/usr/local/apache2/htdocs/ \
        -v /data/http/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf \
        -v /data/http/logs/:/usr/local/apache2/logs/ httpd:2.4.53

9.docker容器 RabbitMQ

1. 创建目录:mkdir -p /data/rabbitmq/lib/

2. 下载镜像:docker pull rabbitmq:management

3. 启动容器:
    docker run -di --name=rabbitmq \
        -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 \
        -v /data/rabbitmq/lib/:/var/lib/rabbitmq \
        --hostname myRabbit \
        -e RABBITMQ_DEFAULT_VHOST=my_vhost  \
        -e RABBITMQ_DEFAULT_USER=admin \
        -e RABBITMQ_DEFAULT_PASS=admin  rabbitmq:management

4. 说明:
    -d 后台运行容器;
    --name 指定容器名;
    -p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
    -v 映射目录或文件;
    --hostname  主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
    -e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)

5. 使用:
    进入容器,添加用户:rabbitmqctl  add_user  admin admin
    并添加角色:rabbitmqctl set_user_tags admin administrator,然后使用 admin 用户进行登录
    进行赋权限:rabbitmqctl set_permissions -p my_vhost admin ".*" ".*" ".*"
    ctrl+p+q退出当前容器

10.docker容器 ES

1. 下载镜像:
    docker pull elasticsearch:8.0.0    #存储和检索数据
    docker pull kibana:8.0.0           #可视化检索数据

2. 创建目录:
    mkdir -p /data/elasticsearch/config /data/elasticsearch/data /data/elasticsearch/plugins
    chmod -R 777 elasticsearch/        #注意:目录的权限 777

3. 创建配置文件:
    echo "http.host: 0.0.0.0" >> /data/elasticsearch/config/elasticsearch.yml

4. 启动容器:
    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 \
        -e "discovery.type=single-node" \
        -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
        -v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
        -v /data/elasticsearch/data:/usr/share/elasticsearch/data \
        -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
        elasticsearch:8.0.0

5. 页面访问:http://192.168.56.10:9300

6. 启动kibana:
    docker run -d --name kibana -e ELASTICSEARCH_URL=http://192.168.56.10:9200 -p 5601:5601 kibana:8.0.0 

11.docker容器 Gitlab

1. 下载镜像:docker pull gitlab/gitlab-ce          #大小约 1.01GB

2. 创建目录:
    mkdir -p /data/gitlab/config /data/gitlab/logs /data/gitlab/data

3. 启动镜像:
    docker run -d -p 443:443 -p 8051:80 -p 222:22 --name my-gitlab --restart always \
        -v /data/gitlab/config:/etc/gitlab \
        -v /data/gitlab/logs:/var/log/gitlab \
        -v /data/gitlab/data:/var/opt/gitlab     gitlab/gitlab-ce

4. 访问:http://1.2.4.3:8051/  账号是:root,密码:/data/gitlab/config/initial_root_password

12.docker容器 Zookeeper

1. 下载镜像:docker pull zookeeper:3.4.14

2. 创建目录:mkdir -p /data/zookeeper/conf /data/zookeeper/data /data/zookeeper/log

3. 创建容器:
    docker run -d --privileged=true --name my-zookeeper \
        -p 2181:2181 -p 2888:2888 -p 3888:3888 \
        -v /data/zookeeper/conf:/conf \
        -v /data/zookeeper/data:/data \
        -v /data/zookeeper/log:/datalog zookeeper:3.4.14

13.docker容器 Dubbo Admin

1. 下载镜像:docker pull chenchuxin/dubbo-admin:latest

2. 创建目录:mkdir -p /data/dubbo-admin

3. 创建容器:
    docker run -d --name my-dubbo-admin -p 8084:8080 \
        -v /data/dubbo-admin:/data  \
        -e dubbo.registry.address=zookeeper://localhost:2181 \
        -e dubbo.admin.root.password=root \
        -e dubbo.admin.guest.password=root chenchuxin/dubbo-admin

4. 查看状态:docker ps -a  ---> 显示 UP 状态;

5. 访问:http://1.2.4.3:8084 , 账号:root/root

14.docker容器 Nacos-server

1. 下载镜像:docker pull nacos/nacos-server:latest

2. 创建目录:mkdir -p /data/nacos/logs /data/nacos/init.d

3. 创建配置文件:touch /data/nacos/init.d/custom.properties

4. MySQL中创建数据库名为 nacos_config 并导入官方脚本:
    https://github.com/alibaba/nacos/blob/1.4.0/config/src/main/resources/META-INF/nacos-db.sql

5. 创建容器:  #参考:https://nacos.io/zh-cn/docs/quick-start-docker.html
    docker run -d --name my-nacos --restart=always -p 8848:8848 \
        -e MODE=standalone \
        -e JVM_XMS=256m \
        -e JVM_XMX=256m \
        -e SPRING_DATASOURCE_PLATFORM=mysql \
        -e MYSQL_SERVICE_HOST=rm-bp1dq6i58pb8ox9u59o.mysql.rds.aliyuncs.com \
        -e MYSQL_SERVICE_PORT=3306 \
        -e MYSQL_SERVICE_DB_NAME=nacos_config \
        -e MYSQL_SERVICE_USER=root \
        -e MYSQL_SERVICE_PASSWORD=123456 \
        -e MYSQL_DATABASE_NUM=1 \
        -v /data/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
        -v /data/nacos/logs:/home/nacos/logs    nacos/nacos-server

6. 访问:http://1.2.3.4:8848/nacos   用户名:nacos/nacos ,可正常访问;

15.docker容器 Seata-server

  1. 下载镜像:

docker pull seataio/seata-server:1.4.2

  1. 创建目录:

mkdir -p /data/seata/seata-config/ /data/seata/logs/

  1. 创建一个容器,拷贝容器的配置文件,然后再删除该容器:

docker run -d --name seata-server -p 8091:8091 seataio/seata-server:1.4.2

docker cp 2675598fa99c:/seata-server/resources/file.conf file.conf

docker cp 2675598fa99c:/seata-server/resources/registry.conf registry.conf

  1. MySQL中创建数据库 seata 并导入官方脚本:

https://github.com/seata/seata/blob/1.4.2/script/server/db/mysql.sql

  1. 在Nacos中,新建一个命名空间:seata,其id值后续会使用到;
  2. 修改配置文件 registry.conf (注册和配置中心)
registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "1.8.9.8:8848"
    group = "SEATA_GROUP"
    namespace = "bdd736c7-73ad-455d-97ec-d9a6b1a2a114"
    cluster = "default"
    username = "nacos"
    password = "nacos"
  }
}

config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"

  nacos {
    serverAddr = "1.8.9.8:8848"
    namespace = "bdd736c7-73ad-455d-97ec-d9a6b1a2a114"
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
  }
}
  1. 修改配置文件 file.conf
## transaction log store, only used in seata-server
store {
  ## store mode: file、db、redis
  mode = "db"
  ## rsa decryption public key
  publicKey = ""
  db {
    ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.
    datasource = "druid"
    ## mysql/oracle/postgresql/h2/oceanbase etc.
    dbType = "mysql"
    driverClassName = "com.mysql.cj.jdbc.Driver"
    ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
    url = "jdbc:mysql://sh-cynosdbmysql-grp-kaeh78ri.com:3306/seata?characterEncoding=UTF-8&useSSL=false"
    user = "root"
    password = "123456"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }
}
  1. 创建容器:
docker run -d --name seata-server -p 8091:8091 -e SEATA_PORT=8091 \
	-v /data/seata/seata-config/registry.conf:/seata-server/resources/registry.conf \
	-v /data/seata/logs:/root/logs --privileged=true seataio/seata-server:1.4.2
  1. 容器启动后,在Nacos上的服务列表中可以看到服务seata-server,且命名空间为seata;
  2. 去github上下载seata的源码放服务器上,修改后缀为 .zip,再解压;
  3. 进入script/conf-center,修改conf.txt的配置:
1. store.mode 修改为 db,以及数据库的相关配置;
2. vgroupMapping.default_tx_group和在项目里配置的要一致(后续使用);
3. 删除没有没有值的配置,否则初始化失败;
  1. 进入nacos路径执行以下命令:

sh nacos-config.sh -h 120.48.96.228 -p 8848 -g SEATA_GROUP -t bdd736c7-73ad-455d-97ec-d9a6b1a2a114

  1. 重启容器:

docker restart seata-server

16.docker容器 Sentinel

参考:https://hub.docker.com/r/bladex/sentinel-dashboard

1. 下载镜像:docker pull bladex/sentinel-dashboard:1.8.0

2. 启动容器:
    docker run -d --restart always --name sentinel -p 8858:8858 bladex/sentinel-dashboard:1.8.0

3. 访问:http://1.2.4.3:8858/  默认用户名和密码是:sentinel/sentinel

标签:02,容器,运维,--,nacos,conf,docker,data
From: https://www.cnblogs.com/lailix/p/16650703.html

相关文章

  • 01.SpringCloudAlibaba 项目
    SpringCloudAlibaba项目1.简述SpringCloudAlibaba项目,采用的SpringCloudAlibaba相关组件:Nacos:注册与发现、配置Gateway:网关Feign:远程调用Sentinel:限流、熔断Se......
  • express 中间件
    constexpress=require('express');constapp=express();//定义中间件函数constmw=function(req,res,next){console.log('简单的中间件函数');......
  • 4.ssm整合:Spring层
    mybatis-config.xml点击查看代码<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN"......
  • mongodb 基本概念
    文档是mongodb的最小数据集单位,是多个键值对有序租户在一起的数据单元,类似于关系型数据库的记录集合一组文档的集合,文档存放的是数据,集合内的结构是可以不同的,集......
  • SpringBoot中ElaticSearch工具类-附源码
    importorg.apache.http.HttpHost;importorg.elasticsearch.client.RestClient;importorg.elasticsearch.client.RestHighLevelClient;importorg.springframework.c......
  • EasyUI 使用说明
    Datagrid引入easyui<linkrel="stylesheet"href="../jquery-easyui-1.3.2/themes/default/easyui.css"/><linkrel="stylesheet"href="../jquery-easyui-1.3.2/theme......
  • Ajax
    目录Ajax一、特点二、Ajax和form表单的区别form表单:Ajax:三、基础语法四、数据编码格式五、Ajax携带文件数据六、回调函数七、序列化Ajax一、特点异步提交,局部刷新Ajax......
  • JavaGUI(一)——布局
    AWT编程AWT简介当JDK1.0发布时,Sun公司提供了一套基本的GUI类库,这个GUI类库希望可以在所有平台下都能运行,这套基本类库被称为“抽象窗口工具集(AbstractWindowToolkit)”,......
  • CDO 如何购买适合的中台及工具
    随着传统行业数字化改革不断深入,过去以经验决策为主的经营模式慢慢变为通过智能数据工具对用户进行深层次统计分析。于是,经过多方迭代更新的数字化技术越来越受企业重视。......
  • EPPlus使用方法---Excel处理我觉得超级好用
    目前只是用到导出Excel功能,导出大规模数据量速度也很快,而且比较容易操作(最起码导出是,暂时没有用到处理已存在的excel功能,有人说NPOI也好用,试了一下,最起码导出这个不如EPPlu......