启动容器报错
直接删除那个name后边的就可以
安装nacos
首先需要拉取对应的镜像文件:docker pull nacos/nacos-server
挂载目录:
mkdir -p /mydata/nacos/logs/ #新建logs目录
mkdir -p /mydata/nacos/init.d/
vim /mydata/nacos/init.d/custom.properties #修改配置文件
修改custom.properties配置文件:
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config? characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root #用户名
db.password=root #密码
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
启动nacos容器:
docker run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos/nacos-server
浏览器登录:ip:8848/nacos 账号:nacos 密码:nacos
设置nacos自启动:docker update --restart=always nacos
安装rocketmq
拉取镜像:docker pull rocketmqinc/rocketmq
创建一个数据目录:
mkdir -p /docker/rocketmq/nameserver/logs /docker/rocketmq/nameserver/store
启动容器:
docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876 -v /docker/rocketmq/nameserver/logs:/root/logs -v /docker/rocketmq/nameserver/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
参数 说明
-d 以守护进程的方式启动
--restart=always docker重启时候容器自动重启
--name rmqnamesrv 把容器的名字设置为rmqnamesrv
-p 9876:9876 把容器内的端口9876挂载到宿主机9876上面
-v /docker/rocketmq/nameserver/logs:/root/logs 目录挂载
-v /docker/rocketmq/nameserver/store 目录挂载
rmqnamesrv 容器的名字
-e “MAX_POSSIBLE_HEAP=100000000” 设置容器的最大堆内存为100000000
rocketmqinc/rocketmq 使用的镜像名称
sh mqnamesrv 启动namesrv服务
安装broker
创建3个文件目录
mkdir -p /docker/rocketmq/broker/logs /docker/rocketmq/broker/store /docker/rocketmq/conf
创建broker.conf配置文件 touch /docker/rocketmq/conf/broker.conf
,目录放哪里都行
文件内容如下:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 主机IP
启动broker:
docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v /docker/rocketmq/broker/logs:/root/logs -v /docker/rocketmq/broker/store:/root/store -v /docker/rocketmq/conf/broker.conf:/opt/docker/rocketmq/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/docker/rocketmq/broker.conf
参数 说明
-d 以守护进程的方式启动
--restart=always docker重启时候容器自动重启
--name rmqbroker 把容器的名字设置为rmqbroker
--link rmqnamesrv:namesrv 和rmqnamesrv容器通信
-p 9876:9876 把容器内的端口9876挂载到宿主机9876上面
-p 10909:10909 把容器的vip通道端口挂载到宿主机
-e “NAMESRV_ADDR=namesrv:9876” 指定namesrv的地址为本机namesrv的ip地址:9876
-e “MAX_POSSIBLE_HEAP=200000000” rocketmqinc/rocketmq sh mqbroker 指定broker服务的最大堆内存
rocketmqinc/rocketmq 使用的镜像名称
sh mqbroker -c /opt/docker/rocketmq/broker.conf 指定配置文件启动broker节点
安装控制台
拉取镜像:docker pull pangliang/rocketmq-console-ng
启动:
docker run -d --restart=always --name rmqadmin -e "JAVA_OPTS=-Drocketmq.namesrv.addr= ip地址:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Duser.timezone='Asia/Shanghai'" -v /etc/localtime:/etc/localtime -p 8080:8080 pangliang/rocketmq-console-ng
访问:ip:8080
安装redis
拉取redis镜像:
#不指定版本号,默认拉取最新版的 redis docker pull redis
#指定的版本号 docker pull redis:5.0.7
创建目录存放redis.conf文件
mkdir -p /opt/docker/redis/conf
mkdir -p /opt/docker/redis/data
cd /opt/docker/redis/conf
下载redis.conf文件,也可以自己上传:wget http://download.redis.io/redis-stable/redis.conf
安装wget命令:yum install wget
,有此命令可跳过
文件授权chmod 777 redis.conf
修改默认配置信息 vi /opt/docker/redis/redis.conf
bind 127.0.0.1 注释掉,解除本地连接限制
daemonize yes 默认no 为不守护进程模式;此属性设置yes与启动命令-d两者会冲突,两者选其一
设置密码(建议设置,不设置有风险)requirepass 密码
持久化(可选) appendonly yes
docker启动redis命令
docker run -p 6379:6379 --name redis -v /opt/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/docker/redis/data:/data --restart=always -d redis redis-server /etc/redis/redis.conf --appendonly yes
命令分析
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf
以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
-–appendonly yes 开启redis 持久化
-–requirepass 123456 设置密码为123456
--restart=always docker重启时候容器自动重启
检查redis容器是否在运行 docker ps
使用连接工具测试
安装xxl-job
配合数据库使用,需要先安装mysql,安装好的就可以按如下操作配置xxl_job库
创建文件 vi tables_xxl_job.sql
找到对应xxl版本的建库sql,地址:xxl_job的sql脚本地址
复制sql语句到刚刚编辑的文件中,保存退出
将文件上传的mysql容器里面:docker cp tables_xxl_job.sql mysql:tables_xxl_job.sql
mysql 是mysql容器的名字
登录mysql:docker exec -it 152267cc6abf /bin/sh
152267cc6abf 这个是mysql对应的容器id
在#号后面直接输入:mysql -uroot -p
-u后面是账号
在enter password 后面输入密码不显示,输入完直接回车即可
登入mysql后面输入导入sql文件命令:source tables_xxl_job.sql
导入之后数据库就能看到xxl_job这个库,然后退出mysql容器:exit 命令
拉取xxl_job镜像:docker pull xuxueli/xxl-job-admin:2.3.1
运行
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.1.128:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \
--spring.datasource.username=root \
--spring.datasource.password=root" \
-p 8888:8080 -v /tmp:/data/applogs \
--name xxl-job-admin --restart=always --privileged=true -d xuxueli/xxl-job-admin:2.3.1
访问地址:http://192.168.1.128:8888/xxl-job-admin/toLogin 账号/密码:admin/123456
安装minio
下载minio的镜像:docker pull minio/minio
启动容器:
docker run -p 9000:9000 -p 9090:9090 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /mydata/minio/data:/data \
minio/minio server \
/data --console-address ":9090" -address ":9000"
9090端口指的是minio的客户端端口;9000端口是minio的服务端端口
虽然设置9090,但是在访问9000的时候,会自动跳到9090。程序连接minio时,就是这个端口连接
访问地址:http://192.168.1.128:9090 账号密码 minioadmin/minioadmin
安装elasticsearch
拉取镜像:docker pull elasticsearch:7.12.1
注意版本稳定性,版本稳定性很重要
创建Elasticsearch配置文件夹、数据文件夹、插件文件夹(如:ik)
mkdir -p /usr/local/data-docker/elasticsearch/config
mkdir -p /usr/local/data-docker/elasticsearch/data
mkdir -p /usr/local/data-docker/elasticsearch/plugins
目的将CentOS本地的文件夹映射到Elasticsearch容器,以实现容器数据的持久化到CentOS本地,以及通过CentOS本地文件夹内容的修改同步到容器
创建并写入elasticsearch.yml配置,注:http.host: 0.0.0.0 冒号后有一空格
echo "http.host: 0.0.0.0">>/usr/local/data-docker/elasticsearch/config/elasticsearch.yml
文件夹赋权 chmod -R 777 elasticsearch/
要进入到文件夹位置
启动容器:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d --restart=always -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /usr/local/data-docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/data-docker/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/local/data-docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.12.1
访问地址:192.168.1.128:9200
安装kibana
拉取镜像: docker pull kibana:7.12.1
与elasticsearch版本保持一致
创建目录、配置文件
mkdir -p /usr/local/kibana/config
vi /usr/local/kibana/config/kibana.yml
配置文件内容
#设置Kibana映射端口
server.port: 5601
#设置网关地址
server.host: "0.0.0.0"
#设置Kibana实例对外展示的名称
server.name: "kibana"
#设置ES集群地址
elasticsearch.hosts: "http://192.168.1.128:9200"
#设置请求超时时长
elasticsearch.requestTimeout: 120000
#设置页面语言
i18n.locale: "zh-CN"
启动容器:
docker run -d -p 5601:5601 -v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml --restart=always --name kibana kibana:7.12.1
数据包转发,执行命令vim /usr/lib/sysctl.d/50-default.conf
末尾添加net.ipv4.ip_forward = 1
重启networksystemctl restart network
访问地址:192.168.1.128:5601