当前位置: 首页 > news >正文

docker安装常用软件

Linux系统安装docker请参考:https://mp.csdn.net/mp_blog/creation/editor/128176825

docker安装mysql

1、拉镜像:docker pull mysql:8.0.26

2、创建数据目录:
mkdir -p /mnt/data/mysql/data
mkdir -p /mnt/data/mysql/logs
mkdir -p /mnt/data/mysql/mysql-files 
mkdir -p /mnt/data/mysql/conf

3、在/mnt/data/mysql/conf下创建my.cnf配置文件,配置文件如下:

# 对本地的mysql客户端的配置
[client]
default-character-set = utf8mb4# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set = utf8mb4# 本地mysql服务的配置
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 禁用DNS
skip-name-resolve
default-time-zone = '+8:00' 

4、赋权限:chmod -R 777 /mnt/data/mysql/

5、创建自定义网络:docker network create mynetwork

6、创建容器并启动:
docker run -itd  --network mynetwork --restart=always --privileged=true --name=mysql8  -p 3306:3306 -v /mnt/data/mysql/mysql-files:/var/lib/mysql-files/ -v /mnt/data/mysql/data:/var/lib/mysql -v /mnt/data/mysql/logs:/var/log/mysql  -v /mnt/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root mysql:8.0.26

docker安装mongo

1、拉镜像:docker pull mongo:6.0

2、创建数据目录:mkdir -p /mnt/data/mongo/data

3、赋权限:chmod -R 777 /mnt/data/mongo/

4、创建容器并启动:
docker run -d --name mongo6 --restart always --network mynetwork --privileged=true -p 27017:27017 -v /mnt/data/mongo/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin mongo:6.0 --auth

5、创建用户并赋权:

#创建超级管理员用户
use admin;
db.createUser({user: 'admin', pwd: 'admin', roles: [{role: 'root', db: 'admin'}]});
#创建应用数据库用户
use mydb;
db.createUser({user: 'tom', pwd: 'tom', roles: [{role: 'dbOwner', db: 'mydb'}]});

docker安装redis

1、拉镜像:docker pull redis:6.0.9

2、创建数据目录:
mkdir -p /mnt/data/redis/data
mkdir -p /mnt/data/redis/conf

3、在/mnt/data/redis/conf下创建redis.conf配置文件,配置文件主要修改下面内容:

# bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300save 900 1
save 300 10
save 60 10000
rdbcompression yes
requirepass 123456lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

4、赋权限:chmod -R 777 /mnt/data/redis/

5、创建容器并启动:
docker run -d --name redis6 --restart=always --privileged=true --network mynetwork -p 6379:6379  -v /mnt/data/redis/conf/redis.conf:/redis.conf -v /mnt/data/redis/data:/data --requirepass 123456 redis:6.0.9 redis-server --appendonly yes

注意:如果安装的redis版本支持requirepass 参数,尽量启动时设置密码;如果版本不支持,需要在redis启动后,进入控制台,按照下一步用命令设置密码,否则配置文件redis.conf里设置的密码不生效;

6、设置密码(很重要)
用docker命令进入容器内部:
docker exec -it 容器ID /bin/bash
进入redis目录:cd /usr/local/bin
运行命令进入客户端:redis-cli
或者通过redis客户端连接工具进入redis控制台,然后通过下面命令查看设置密码:
查看当前redis密码:config get requirepass

设置redis密码:config set requirepass ******
若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码
可以发现,在设置密码前,即便我们在redis.conf中配置了密码,但这里仍然显示密码为空:

docker安装elasticsearch

1、拉镜像:docker pull elasticsearch:8.1.2

2、创建数据目录:
mkdir -p /mnt/data/elasticsearch/data
mkdir -p /mnt/data/elasticsearch/plugins
mkdir -p /mnt/data/elasticsearch/config

3、在/mnt/data/elasticsearch/config下创建elasticsearch.yml配置文件,配置文件如下:

单机部署:

node.name: node1
network.host: 0.0.0.0
network.publish_host: localhost
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["localhost:9300"]
transport.profiles.default.port: 9300
xpack.security.enabled: false

集群部署:

节点1节点2节点3
cluster.name: es-cluster
node.name: node1
network.host: 0.0.0.0
network.publish_host: 192.168.4.103
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: node1
discovery.seed_hosts: ["192.168.4.103:9300"]
transport.profiles.default.port: 9300
xpack.security.enabled: false
cluster.name: es-cluster
node.name: node2
network.host: 0.0.0.0
network.publish_host: 192.168.4.103
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: node1
discovery.seed_hosts: ["192.168.4.103:9300"]
transport.profiles.default.port: 9300
xpack.security.enabled: false
cluster.name: es-cluster
node.name: node3
network.host: 0.0.0.0
network.publish_host: 192.168.4.103
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.initial_master_nodes: node1
discovery.seed_hosts: ["192.168.4.103:9300"]
transport.profiles.default.port: 9300
xpack.security.enabled: false

4、赋权限:chmod -R 777 /mnt/data/elasticsearch/

5、创建容器并启动:
docker run --name es8 -p 9200:9200  -p 9300:9300 --restart always --network mynetwork --privileged=true  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -v /mnt/data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/data/elasticsearch/data:/usr/share/elasticsearch/data -v /mnt/data/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.1.2

docker安装kafka

docker安装nginx

1、拉镜像:docker pull nginx

2、创建数据目录:
mkdir -p /mnt/data/nginx/logs
mkdir -p /mnt/data/nginx/html
mkdir -p /mnt/data/nginx/conf

3、在/mnt/data/nginx/conf下创建nginx.conf配置文件,配置文件如下:

worker_processes 4;
worker_rlimit_nofile 655350;events {worker_connections 100000;
}stream {upstream plcserver{#least_conn; # 把请求分派给连接数最少的服务器server 172.18.0.1:2526;server 172.18.0.2:2526;#hash $remote_addr consistent;#server 127.0.0.1:6000 weight=1 max_fails=3 fail_timeout=30s;#server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s;}server {listen 2526;proxy_pass plcserver;tcp_nodelay on;proxy_connect_timeout 1s;#proxy_timeout 3s;# 开启代理协议,通过协议发送真实IPproxy_protocol on;}
}http {include mime.types;default_type application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout 65;# 开启gzip压缩gzip on;# 不压缩临界值,大于1K的才压缩,一般不用改gzip_min_length 1k;# 压缩缓冲区gzip_buffers 16 64K;# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)gzip_http_version 1.1;# 压缩级别,1-10,数字越大压缩的越好,时间也越长gzip_comp_level 5;# 进行压缩的文件类型gzip_types text/plainapplication/x-javascripttext/cssapplication/xmlapplication/javascript;# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"gzip_vary on;# IE6对Gzip不怎么友好,不给它Gzip了gzip_disable "MSIE [1-6]\.";upstream myserver {server 172.18.0.2:8888; #前端请求经过nginx代理后到后台的服务IP和端口}server {listen 80;#填写证书绑定的域名server_name 172.18.0.2;#将所有HTTP请求通过rewrite指令重定向到HTTPSrewrite ^(.*)$ https://$host$1;location / {root /mnt/project/frontend/dist;try_files $uri $uri/ /index.html;index index.html index.htm;}}server {listen       443 ssl;# server_name 172.18.0.2;ssl_certificate      cert/1111111_xxxxxxx.cn.pem;ssl_certificate_key  cert/1111111_xxxxxxx.cn.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;location / {root /mnt/project/frontend/dist;try_files $uri $uri/ /index.html;index index.html index.htm;}location /profile {alias /mnt/uploadPath/;}location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection upgrade;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://myserver;}location /vue/ {alias /mnt/project/frontend/vue;}location /vue/lbx/ {alias /mnt/project/frontend/h5/;}location /web-api/ {proxy_pass http://myserver;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# MP_verify_vxs6TlQn9pENraPp.txtlocation = /MP_verify_sdfsfsfsfsf.txt {alias /mnt/uploadPath/MP_verify_sdfsfsfsfsf.txt;}}#nginx优化----------------------#隐藏版本号server_tokens on;#优化服务器域名的散列表大小 server_names_hash_bucket_size 64;server_names_hash_max_size 2048;#开启高效文件传输模式#sendfile on;#减少网络报文段数量#tcp_nopush on;#提高I/O性能tcp_nodelay on;#连接超时 时间定义 默认秒 默认65秒#keepalive_timeout 60;#读取客户端请求头数据的超时时间 默认秒 默认60秒client_header_timeout 15;#读取客户端请求主体的超时时间 默认秒 默认60秒client_body_timeout 15;#响应客户端的超时时间 默认秒 默认60秒send_timeout 25;#上传文件的大小限制  默认1mclient_max_body_size 8m;
}

4、赋权限:chmod -R 777 /mnt/data/nginx/

5、创建容器并启动:
docker run --name nginx -m 500m -p 80:80 --restart always --network mynetwork -v /mnt/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /mnt/data/nginx/logs:/var/log/nginx -v /mnt/data/nginx/html:/usr/share/nginx/html -v /mnt/project/frontend/build:/mnt/project/frontend/build -e TZ=Asia/Shanghai --privileged=true -d nginx

相关文章:

docker安装常用软件

Linux系统安装docker请参考:https://mp.csdn.net/mp_blog/creation/editor/128176825 docker安装mysql 1、拉镜像:docker pull mysql:8.0.26 2、创建数据目录: mkdir -p /mnt/data/mysql/data mkdir -p /mnt/data/mysql/logs mkdir -p /mn…...

CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)

在Cocos Creator中,脚本代码文件分为模块和插件两种方式: 模块一般就是项目的脚本,包含项目中创建的代码、引擎模块、第三方模块。 插件脚本,是指从 Cocos Creator 属性检查器中导入的插件,一般是引入第三方引入库文件…...

Adobe Acrobat Reader界面改版 - 解决方案

问题 日期:2023年9月 Adobe Acrobat Reader下文简称Adobe PDF Reader,此软件会自动进行更新,当版本更新至2023.003.20284版本后。 软件UI界面会大改版:书签页变成了右边、工具栏变到了左边、缩放按钮变到了右下角,如…...

实用调试技巧(2)

文章目录 6. 如何写出好(易于调试)的代码6.1 优秀的代码:6.2 示范:6.3 const的作用 7. 编程常见的错误7.1 编译型错误7.2 链接型错误7.3 运行时错误 附: 6. 如何写出好(易于调试)的代码 6.1 优…...

海外ASO优化之如何优化游戏应用

如果我们发布了一款手机游戏或者管理了一款手机游戏,那么需要确保我们的手机游戏对合适的人可见,目的是增加应用的下载量。 1、优化游戏元数据的关键词。 Apple和Google在应用商店中为我们提供有限的空间,来描述手机游戏及其优势。我们需要使…...

SpringMVC: Java Web应用开发的框架之选

引言 在当今的软件开发领域中,Web应用的需求不断增长。为了满足这种需求,各种Web框架应运而生。其中,SpringMVC作为一种优秀的Java Web框架,受到广泛关注和使用。本文将以文章的形式给您讲解SpringMVC的重要概念、工作原理和核心…...

【华为设备升级】AR路由器升级设备软件示例

升级设备软件示例 通过介绍设备升级的具体步骤,帮助用户顺利完成系统设备升级。 组网需求 设备当前系统软件版本已经不能满足用户需要,用户需要更大的规格和部署更多的特性,此时用户需要对系统软件进行升级。 如图1所示,网络中的某…...

Dataset 的一些 Java api 操作

文章目录 一、使用 Java API 和 JavaRDD<Row> 在 Spark SQL 中向数据帧添加新列二、foreachPartition 遍历 Dataset三、Dataset 自定义 Partitioner四、Dataset 重分区并且获取分区数 一、使用 Java API 和 JavaRDD 在 Spark SQL 中向数据帧添加新列 在应用 mapPartition…...

Vue + Element UI 前端篇(十一):第三方图标库

Vue Element UI 实现权限管理系统 前端篇&#xff08;十一&#xff09;&#xff1a;第三方图标库 使用第三方图标库 用过Elment的同鞋都知道&#xff0c;Element UI提供的字体图符少之又少&#xff0c;实在是不够用啊&#xff0c;幸好现在有不少丰富的第三方图标库可用&…...

HDFS:Hadoop文件系统(HDFS)

Hadoop文件系统&#xff08;HDFS&#xff09;是一个分布式文件系统&#xff0c;主要用于存储和处理大规模的数据集。HDFS是Apache Hadoop的核心组件之一&#xff0c;能够支持上千个节点的集群&#xff0c;并能够处理PB级别的数据。 HDFS将大文件切割成小的数据块&#xff08;默…...

SpringMvc--综合案例

目录 1.SpringMvc的常用注解 2.参数传递 基础类型&#xff08;String&#xff09; 创建一个paramController类&#xff1a; 创建一个index.jsp 测试结果 复杂方式 ​编辑 测试结果 RequestParam 测试结果 PathVariable 测试结果 RequestBody pom.xml依赖导入 输…...

工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发

在现代制造业中&#xff0c;市场变化都在不断加速。企业面临着不断加强生产效率、生产质量和快速适应市场需求的挑战。在制造行业&#xff0c;日常管理中的ERP系统、MES系统就显得尤为重要。越来越多的企业正在采用MES系统和ERP管理系统的融合&#xff0c;以实现智能化生产管理…...

IT运维监控系统和网络运维一样吗

IT运维监控系统和网络运维不是一样的。IT运维监控系统是一系列IT管理产品的统称&#xff0c;它所包含的产品功能强大、易于使用、解决方案齐全&#xff0c;可一站式满足用户的各种IT管理需求。而网络运维是指对网络设备进行监控、维护和管理&#xff0c;包括硬件故障的排除、软…...

c语言flag的使用

flag在c语言中标识某种状态或记录某种信息&#xff0c;可以通过修改flag中来控制程序流程,判断某种状态是否存在或记录某种信息 操作:(1)初始化 (2)赋值 (3)判断 (4)修改 (5)去初始化 #include <stdlib.h>int power_state_check;int main() {int i 0;power_state_check…...

docker push image harbor http 镜像

前言 搭建的 harbor 仓库为 http 协议&#xff0c;在本地登录后&#xff0c;推送镜像发生如下报错&#xff1a; docker push 192.168.xx.xx/test/grafana:v10.1.1 The push refers to repository [192.168.xx.xx/test/grafana] Get "https://192.168.xx.xx/v2/": dia…...

羊城杯2023 部分wp

目录 D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) Serpent(pickle反序列化&python提权) ArkNights(环境变量泄露) Ez_misc(win10sinpping_tools恢复) D0nt pl4y g4m3!!!(php7.4.21源码泄露&pop链构造) 访问/p0p.php 跳转到了游戏界面 应该是存在302跳转…...

解读Java对Execl读取数据

1.读取execl文件路径,或者打开execl // 初始化文件流FileInputStream in = null;in = new FileInputStream(new File(path));workbook = new XSSFWorkbook(in);sheet = workbook.getSheetAt(0);rows = sheet.getPhysicalNumberOfRows(); 2.读取execl中sheet页数,即获取当前E…...

RHCE——十七、文本搜索工具-grep、正则表达式

RHCE 一、文本搜索工具--grep1、作用2、格式3、参数4、注意5、示例5.1 操作对象文件&#xff1a;/etc/passwd5.2 grep过滤命令示例 二、正则表达式1、概念2、基本正则表达式2.1 常见元字符2.2 POSIX字符类2.3 示例 3、扩展正则表达式3.1 概念3.2 示例 三、作业1、作业一2、作业…...

小程序实现摄像头拍照 + 水印绘制

文章标题 01 功能说明02 使用方式 & 效果图2.1 基础用法2.2 拍照 底部定点水印 预览2.3 拍照 整体背景水印 预览 03 全部代码3.1 页面布局 html3.2 业务核心 js3.3 基础样式 css 01 功能说明 需求&#xff1a;小程序端需要调用前置摄像头进行拍照&#xff0c;并且将拍…...

SpringMVC:从入门到精通,7篇系列篇带你全面掌握--三.使用SpringMVC完成增删改查

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于SpringMVC的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 效果演示 一.导入项目的相关依赖 二.…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

LLMs 系列实操科普(1)

写在前面&#xff1a; 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容&#xff0c;原视频时长 ~130 分钟&#xff0c;以实操演示主流的一些 LLMs 的使用&#xff0c;由于涉及到实操&#xff0c;实际上并不适合以文字整理&#xff0c;但还是决定尽量整理一份笔…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...