文章目录
- 启动mysql
- 启动Gitlab容器
- 启动nacos
- 启动redis
- 启动xxljob
- 启动zipkin
- 启动sentinel
- 启动seata
- 启动Rockermq
- 启动Rockermq-namesrv
- 启动Rockermq-broker
- 启动Rockermq-console
- 启动Jenkins
- 启动Oracle
- 创建drp项目的表空间
- 指定用户的表空间
- 给用户授权
- 启动zookeeper
- 启动kafka
- 验证kafka是否可以使用
- 常用命令
- 启动kafka管理平台
- 启动rabbitMQ
- 创建用户
- 启动ES
- 关闭身份验证
- 验证
- 在线安装IK分词器(版本要和es一致)
启动mysql
sudo docker run \
-d \
-p 3306:3306 \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=xxxxx \
--restart always \
--name mysql \
mysql:5.6.47
-p 3306:3306:指定宿主机端口与容器端口映射关系
–name mysql:创建的容器名称
–restart=always:总是跟随docker启动
–privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。
启动Gitlab容器
sudo docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /usr/local/Gitlab/etc:/etc/gitlab \
-v /usr/local/Gitlab/log:/var/log/gitlab \
-v /usr/local/Gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
启动nacos
docker run \--name nacos \-d \-p 8848:8848 \-p 9848:9848 \-p 9849:9849 \--restart=always \-e JVM_XMS=256m \-e JVM_XMX=256m \-e MODE=standalone \-v /usr/local/nacos/logs:/home/nacos/logs \-v /usr/local/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \nacos/nacos-server:v2.1.0
没有开鉴权的nacos:
启动redis
docker run \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=2 \
-p 6379:6379 \
--name redis \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-d redis:5.0.7 \
redis-server /etc/redis/redis.conf \
--appendonly yes \
--requirepass 000000
–restart=always 总是开机启动
–log是日志方面的
-p 6379:6379 将6379端口挂载出去
–name 给这个容器取一个名字
-v 数据卷挂载
/home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
/home/redis/myredis/data:/data 这个同上
-d redis:版本号 表示后台启动哪个版本的redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf
–appendonly yes 开启redis 持久化
–requirepass 000415 设置密码 (如果你是通过docker 容器内部连接的话,就随意,可设可不设。但是如果想向外开放的话,一定要设置
启动xxljob
docker run \
-e PARAMS="--spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxl_job_dev?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=xxljob \
--spring.datasource.password=xxljob" \
-p 8080:8080 \
-v /tmp:/data/applogs \
--name xxl-job-admin \
--restart=always \
-d xuxueli/xxl-job-admin:2.3.1
启动zipkin
docker run \
-e PARAMS="--spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/zipkin?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=123456" \
-p 9411:9411 \
--name zipkin \
--restart=always \
-d openzipkin/zipkin:2.12.9
启动sentinel
docker run \
--name sentinel \
--restart=always \
-p 8858:8858 \
-v /usr/local/sentinel_home:/home/sentinel_home \
-d bladex/sentinel-dashboard:1.8.0
启动seata
docker run \
-d \
--restart always \
--name seata-server \
-p 8091:8091 \
-v /usr/local/seata:/seata-server \
seataio/seata-server:1.5.1
配置文件:/usr/local/seata/resources/application.yml
安装文档
启动Rockermq
安装文档
启动Rockermq-namesrv
docker run \
-d \
--name rocketmq-namesrv \
--network rocketmq \
--restart=always \
-p 9876:9876 \
-v /usr/local/rocketmq/namesrv/logs:/root/logs \
-v /usr/local/rocketmq/namesrv/store:/root/store \
apache/rocketmq:4.9.3 sh \
mqnamesrv
配置文件路径: /usr/local/rocketmq/broker/conf/broker.conf
启动Rockermq-broker
docker run \
-d \
--name rocketmq-broker \
--network rocketmq \
--restart=always \
-p 10909:10909 \
-p 10911:10911 \
-v /usr/local/rocketmq/broker/logs:/root/logs \
-v /usr/local/rocketmq/broker/store:/root/store \
-v /usr/local/rocketmq/broker/conf:/home/rocketmq/rocketmq-4.9.3/conf \
-e "JAVA_OPT_EXT=-server -Xms256m -Xmx700m" apache/rocketmq:4.9.3 sh mqbroker \
-c /usr/local/rocketmq/broker/conf/broker.conf
不指定内存:(-e那行换成如下)
apache/rocketmq:4.9.3 sh mqbroker
启动Rockermq-console
docker run \
-d \
--name rocketmq-console \
--network rocketmq \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rocketmq-namesrv:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8000:8080 \
--restart=always \
apacherocketmq/rocketmq-dashboard:latest
启动Jenkins
docker run \
-itd \
--name jenkins \
-p 8829:8080 \
-p 50000:50000 \
--restart always \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -v /usr/soft/jenkins_home:/var/jenkins_home \
//-v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven \
-v /etc/localtime:/etc/localtime \
jenkinszh/jenkins-zh
启动Oracle
docker run \
-d \
-p 1521:1521 \
--name oracle11g \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g \
-v /usr/local/oracle/product/11.2.0/dbhome_2:/home/oracle/app/oracle/product/11.2.0/dbhome_2
- 查看容器启动状态: docker ps | grep oracle11g
- 进入oracle11g容器进行配置: docker exec -it oracle11g bash
- 切换到root用户下进行配置: su root 输入密码: helowin
- 编辑profile文件配置ORACLE环境变量: vi /etc/profile ,并添加如下内容, 保存退出后使配置生效 source /etc/profile
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
- 创建软连接: ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
- 切换到oracle 用户: su - oracle
- 登录sqlplus并修改sys、system用户密码:
sqlplus /nolog # 登录
conn /as sysdba # 连接
alter user system identified by system; # 修改system密码为system
alter user sys identified by sys; # 修改sys密码为sys
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
exit;
查看一下oracle实例状态: lsnrctl status
创建drp项目的表空间
su - oracle
CREATE TABLESPACE ts_drp1 --表空间名
DATAFILE '/home/oracle/datafile/drp1-data.dbf' --表空间对应的数据文件
SIZE 100M --数据文件大小
AUTOEXTEND ON NEXT 10M --数据文件不够用自动扩展,每次扩展大小
MAXSIZE 1000M --数据文件最大文件大小
LOGGING --启动重做日志
PERMANENT --指定表空间为永久性的表空间
EXTENT MANAGEMENT LOCAL AUTOALLOCATE --指定新建表空间为本地管理方式的表空间
//BLOCKSIZE 16K --块大小
SEGMENT SPACE MANAGEMENT auto --指定本地管理表空间中段的存储管理方式,AUTO自动,MANUAL手工。
指定用户的表空间
create user drp1 IDENTIFIED by drp1; //创建用户
alter user drp1 default tablespace ts_drp1; //指定用户的表空间
select username,DEFAULT_TableSpace from dba_users;//查看结果
给用户授权
grant create session, create table, create view, unlimited tablespace to drp1;
启动zookeeper
注意:localtime是个文件,不是目录
docker run \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name zookeeper \
-p 2181:2181 \
-v /usr/local/zookeeper/etc/localtime:/etc/localtime \
wurstmeister/zookeeper
启动kafka
docker run \
-d \
--restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=xxx.xxx.xxx.xxx:2181/kafka \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xxx.xxx.xxx.xxx:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-v /usr/local/kafka/etc/localtime:/etc/localtime \
wurstmeister/kafka
参数说明:
-e KAFKA_BROKER_ID=0 :在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=192.168.244.132:2181/kafka :配置zookeeper管理kafka的路径172.16.0.13:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.244.132:9092 :把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 :配置kafka的监听端口
-v /etc/localtime:/etc/localtime :容器时间同步虚拟机的时间
验证kafka是否可以使用
- 进入容器:docker exec -it kafka bash
- 进入 /opt/kafka_2.12-2.3.0/bin/ 目录下:cd /opt/kafka_2.13-2.8.1/bin/
- 运行kafka生产者发送消息:./kafka-console-producer.sh --broker-list localhost:9092 --topic sun
- 发送消息: {“datas”:[{“channel”:“”,“metric”:“temperature”,“producer”:“ijinus”,“sn”:“IJA0101-00002245”,“time”:“1543207156000”,“value”:“80”}],“ver”:“1.0”}
- 打开新窗口,运行kafka消费者接收消息:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning
执行完上诉命令后,在生产者窗口中 输入任意内容回车,即可在消费者的窗口查看到消息
常用命令
查看消息主题列表:./kafka-topics.sh --list --zookeeper zookeeper:2181
查看指定topic信息:./kafka-topics.sh --describe --zookeeper zookeeper:2181
–topic test
启动kafka管理平台
docker pull docker.io/sheepkiller/kafka-manager
docker run \
-it \
-d \
--rm \
-p 9000:9000 \
-e ZK_HOSTS="120.53.12.20:2181" \
--net=host \
sheepkiller/kafka-manager
启动rabbitMQ
docker run \
--name some-rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-d rabbitmq:3.12-management
创建用户
docker exec -it some-rabbitmq /bin/bash
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
5671端口:安全的AMQP端口,使用TLS/SSL进行加密通信。 5672端口:AMQP(Advanced Message Queuing
Protocol)协议的默认端口,用于客户端与RabbitMQ服务器之间的通信。
15672端口:RabbitMQ的管理界面,默认使用HTTP协议,用于监控和管理RabbitMQ服务器。
管理页面:http://xxx.xxx.xxx.xxx:15672/
账号/密码:admin
启动ES
版本还是低点好
docker run -d \
--restart=always \
--name es \-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:6.4.3
关闭身份验证
进入容器,输入以下命令:
cd config/
echo “xpack.security.enabled: false” >> elasticsearch.yml
验证
输入网址:xxx.xxx.xxx.xxx:9200
显示以下内容就成功了
在线安装IK分词器(版本要和es一致)
docker exec -it es /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.3/elasticsearch-analysis-ik-6.4.3.zip
或
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.4.3/elasticsearch-analysis-pinyin-6.4.3.zip