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
- 下载镜像:
docker pull seataio/seata-server:1.4.2
- 创建目录:
mkdir -p /data/seata/seata-config/ /data/seata/logs/
- 创建一个容器,拷贝容器的配置文件,然后再删除该容器:
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
- MySQL中创建数据库 seata 并导入官方脚本:
https://github.com/seata/seata/blob/1.4.2/script/server/db/mysql.sql
- 在Nacos中,新建一个命名空间:seata,其id值后续会使用到;
- 修改配置文件 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"
}
}
- 修改配置文件 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
}
}
- 创建容器:
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
- 容器启动后,在Nacos上的服务列表中可以看到服务seata-server,且命名空间为seata;
- 去github上下载seata的源码放服务器上,修改后缀为 .zip,再解压;
- 进入script/conf-center,修改conf.txt的配置:
1. store.mode 修改为 db,以及数据库的相关配置;
2. vgroupMapping.default_tx_group和在项目里配置的要一致(后续使用);
3. 删除没有没有值的配置,否则初始化失败;
- 进入nacos路径执行以下命令:
sh nacos-config.sh -h 120.48.96.228 -p 8848 -g SEATA_GROUP -t bdd736c7-73ad-455d-97ec-d9a6b1a2a114
- 重启容器:
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