windows版本
1.下载docker desktop(快速入门 )
官方文档 https://docker.p2hp.com/
快速入门文档 https://docker.easydoc.net/doc/81170005/cCewZWoN/lTKfePfP
镜像仓库 https://hub.docker.com/
2.安装WSL
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package
3.安装启动Hyper-V
1.使用powershell 安装 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
2.其他安装 https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
4.配置阿里云镜像
{ “registry-mirrors”: [“https://b5wnbx47.mirror.aliyuncs.com”] }
阿里云镜像中心 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
软件安装命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8uCdxI7N-1679385047723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220918204139107.png)]
1. redis安装 docker run --name redis_cyh -p 6379:6379 -v D:/dockerConfig/redis/data:/data -v
D:/dockerConfig/redis/redis.conf:/etc/redis.conf -d redis --requirepass "032101"
2.mysql安装(https://www.jianshu.com/p/fd5d388dbf7d) -----本地用户 root cyh0321 cyh 0321
docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=cyh0321 -d -p 3306:3306 mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=cyh032101 -v D:/dockerConfig/mysql/conf:/etc/mysql/conf.d -v D:/dockerConfig/mysql/data:/var/lib/mysql --name mysql_cyh mysql:5.7
进去mysql docker exec -it [mysql名字] bash
登录 mysql -u root -p
添加远程用户 CREATE USER '[name]'@'%' IDENTIFIED WITH mysql_native_password BY '[pwd]';
授权 GRANT ALL PRIVILEGES ON *.* TO '[name]'@'%';
安装elasticsearch和kibana 并配置(https://blog.youkuaiyun.com/qq_42969135/article/details/113529754)
docker run --name elasticsearch_cyh -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v D:/dockerConfig/ES/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:/dockerConfig/ES/data:/usr/share/elasticsearch/data -v D:/dockerConfig/ES/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.6.2
##命令解析:为容器起一个名字为elasticsearch,-p暴露两个端口 9200 9300,
9200是发送http请求——restapi的端口,9300是es在分布式集群状态下,结点之间的通信端口, \代表换行下一行。
-e single-node 是以单节点方式运行,ES_JAVA_OPTS不指定的话,es一启动,会将内存全部占用,整个虚拟机就卡死了。
-v 进行挂载,目录中配置,数据等一一关联 -d 后台启动es使用指定的镜像
Kibana安装
docker pull kibana:7.6.2
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://localhost:9200 -p 5601:5601 -d --link elasticsearch_cyh kibana:7.6.2
安装elasticHD(可视化)
docker run -p 9800:9800 -d --link elasticsearch_cyh --name elasticHD_cyh containerize/elastichd
rabbitmq安装(https://blog.youkuaiyun.com/qq_45502336/article/details/118699251)
docker pull rabbitmq
docker run -d --hostname rabbit_cyh --name rabbitmq_cyh -p 15672:15672 -p 5672:5672 rabbitmq
在rabbitmq里面 控制面板rabbitmq-plugins enable rabbitmq_management
创建用户rabbitmqctl add_user [username] [password]
分配权限rabbitmqctl set_user_tags [username] administrator
添加资源权限rabbitmqctl set_permissions -p / [username] ".*" ".*" ".*"
安装nacos(单机版)
1.(https://www.cnblogs.com/laity353/p/15338581.html#:~:text=Docker%E5%AE%89%E8%A3%85Nacos%28%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B%29%201%E3%80%81%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F%20docker%20pull%20nacos%2Fnacos-server%202%E3%80%81%E6%8C%82%E8%BD%BD%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%94%A8%E4%BA%8E%E6%98%A0%E5%B0%84%E5%88%B0%E5%AE%B9%E5%99%A8%EF%BC%8C%E7%9B%AE%E5%BD%95%E6%8C%89%E8%87%AA%E5%B7%B1%E7%9A%84%E6%83%85%E5%86%B5%E5%88%9B%E5%BB%BA%20mkdir%20-p,mkdir%20-p%20%2Fmydata%2Fnacos%2Finit.d%2F%20vim%20%2Fmydata%2Fnacos%2Finit.d%2Fcustom.properties%20%23%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%203%E3%80%81mysql%E6%96%B0%E5%BB%BAnacos%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%8C%E5%B9%B6%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%20sql%E8%84%9A%E6%9C%AC%E5%9C%B0%E5%9D%80%E5%A6%82%E4%B8%8B%EF%BC%9A)添加配置文件数据库
2.(https://blog.youkuaiyun.com/jinxilongjxl/article/details/109718879)
步骤
docker pull nacos/nacos-server
启动并使用内置数据库
docker run -e JVM_XMS=256m -e JVM_XMX=256m --env MODE=standalone --name nacos_cyh -d -p 8848:8848 nacos/nacos-server
dockerFile
1.使用dockerfile 文件构建spring boot镜像
#基础镜像,本地没有会从dockerHub pull下载下来
FROM java:8
#作者
MAINTAINER [NAME]
# 把可执行的jar包复制到基础镜像的根目录下
ADD xxxx.jar /xxx.jar
#镜像要暴露的端口,如果要使用端口 在执行docker run 命令时使用 -p生效
EXPSOR [端口号]
#在镜像运行为容器后执行的命令 java 执行jar包的命令 java -jar xxx.jar
ENTRYPOINT ["java","-jar","/xxx.jar"]
#自做tomcat镜像
#以centos为基础镜像
FROM centos
#外部传入参数名字 以--arg <value>
ARG myname=CYH
#作者名
MAINTAINER $myname
#与MAINTAINER 差不多
LABEL auto=CYH_TEST_LABEL
#添加jdk 到/usr/local 与copy一样 (copy从宿主机拷贝,add可以从网上下载并可以解压tar包)
ADD jdk-8u60-linux-x64.tar.gz /usr/local
ADD apache-tomcat-7.0.92.tar.gz /usr/local
#配置jdk环境变量和tomcat catalina环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_60
ENV CLASSPATH .:$JAVA_HOME/lib
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.92
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#工作目录
WOREDIR $CATALINE_HOME
#运行一些命令
RUN yum -y install vim
#挂在卷
VOLUME ["/data1"]
#暴露端口
EXPOSE 8000
#运行的命令
CMD ls
ENTRYPOINT ["cataline.sh","run"]
mybatis-plus
//我们需要构建一个代码生成器对象
AutoGenerator mpg = new AutoGenerator();
//怎么样去执行,配置策略
//1、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//获取当前目录
gc.setOutputDir(projectPath+"/src/main/java");//输出到哪个目录
gc.setAuthor("cyh");
gc.setOpen(false);
gc.setFileOverride(false);//是否覆盖
gc.setServiceName("%sService");//去Service的I前缀
gc.setIdType(IdType.ID_WORKER);
gc.setDateType(DateType.ONLY_DATE);
gc.setSwagger2(true);
mpg.setGlobalConfig(gc);
//2、设置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUsername("root");
dsc.setPassword("cyh032101");
dsc.setUrl("jdbc:mysql://localhost:3306/traveldb?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
//3、包的配置
PackageConfig pc = new PackageConfig();
pc.setParent("cyh.travel.model");
// pc.setMapper("mapper");
// pc.setService("service");
// pc.setController("controller");
mpg.setPackageInfo(pc);
//4、策略配置
StrategyConfig strategy = new StrategyConfig();
// strategy.setInclude("city","goods_brand","goods_category","orders","orders_goods","post","route_order","scenic_spot","shop","shop_admin","shop_info_admin","travel_route","user","website_admin");//设置要映射的表名,只需改这里即可
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);//是否使用lombok开启注解
strategy.setLogicDeleteFieldName("deleted");
//自动填充配置
TableFill gmtCreate = new TableFill("create_time", FieldFill.INSERT);
TableFill gmtUpdate = new TableFill("update_time", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmtCreate);
tableFills.add(gmtUpdate);
strategy.setTableFillList(tableFills);
//乐观锁配置
strategy.setVersionFieldName("version");
strategy.setRestControllerStyle(true);//开启驼峰命名
strategy.setControllerMappingHyphenStyle(true);//localhost:8080/hello_id_2
mpg.setStrategy(strategy);
mpg.execute();//执行
}
etRestControllerStyle(true);//开启驼峰命名
strategy.setControllerMappingHyphenStyle(true);//localhost:8080/hello_id_2
mpg.setStrategy(strategy);
mpg.execute();//执行
}