天天观焦点:Docker基于镜像 可以秒级启动各种容器
一、环境
(资料图片仅供参考)
虚拟机ip192.168.174.128 本地ip192.168.31.14 本地和虚拟机要互相ping通
二、Docker
虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离。 安装 docker Docker 安装文档
1、卸载系统之前的 docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
2、安装 Docker-CE
安装必须的依赖
sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
设置 docker repo 的 yum 位置
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
3、启动 docker
sudo systemctl start docker
4、设置 docker 开机自启
sudo systemctl enable docker
5、测试 docker 常用命令,注意切换到 root 用户下
https://docs.docker.com/engine/reference/commandline/docker/
6、配置 docker 镜像加速
阿里云,容器镜像服务 针对 Docker 客户端版本大于 1.10.0 的用户 您可以通过修改 daemon 配置文件/etc/docker/daemon.json 来使用加速器
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-"EOF" {"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart
三、docker 安装 mysql
1、下载镜像文件
docker pull mysql:5.7
2、创建实例并启动
docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
MySQL 配置
vi /mydata/mysql/conf/my.cnf[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect="SET collation_connection = utf8_unicode_ci" init_connect="SET NAMES utf8" character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolve
注意:解决 MySQL 连接慢的问题在配置文件中加入如下,并重启 mysql[mysqld]skip-name-resolve解释:skip-name-resolve:跳过域名解析
3、通过容器的 mysql 命令行工具连接
docker exec -it mysql mysql -uroot -proot
4、设置 root 远程访问
grant all privileges on *.* to "root"@"%" identified by "root" with grant option;flush privileges;
5、进入容器文件系统
docker exec -it mysql /bin/bash
四、docker 安装 redis
1、下载镜像文件
docker pull redis
2、创建实例并启动
mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \-d redis redis-server /etc/redis/redis.conf
redis 自描述文件: https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf
3、使用 redis 镜像执行 redis-cli 命令连接
docker exec -it
五、开发环境统一(在maven的setting.xml修改两处配置)
1、Maven配置阿里云镜像
nexus-aliyuncentralNexus aliyunhttp://maven.aliyun.com/nexus/content/groups/public
2、配置 jdk1.8 编译项目
jdk-1.8true1.81.81.81.8
3、Idea&VsCode
idea 安装 lombok、mybatisx 插件Vscode 安装开发必备插件Vetur —— 语法高亮、智能感知、Emmet 等包含格式化功能, Alt+Shift+F (格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个 Ctrl需要同时按着)EsLint —— 语法纠错Auto Close Tag —— 自动闭合 HTML/XML 标签Auto Rename Tag —— 自动完成另一侧标签的同步修改JavaScript(ES6) code snippets — — ES6 语 法 智 能 提 示 以 及 快 速 输 入 , 除 js 外 还 支持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含 js 代码文件的时间HTML CSS Support —— 让 html 标签上写 class 智能提示当前项目所支持的样式HTML Snippets —— html 快速自动补全Open in browser —— 浏览器快速打开Live Server —— 以内嵌服务器方式打开Chinese (Simplified) Language Pack for Visual Studio Code —— 中文语言包
安装的插件
4、安装配置 git
①、下载 git;https://git-scm.com ②、配置 git,进入 git bash 配置用户名
git config --global user.name "username" //(名字)
配置邮箱
git config --global user.email "username@email.com" //(注册账号时用的邮箱)
③、配置 ssh 免密登录 https://gitee.com/help/articles/4181#article-header0 进入 git bash;使用:ssh-keygen -t rsa -C "xxxxx@xxxxx.com"命令。 连续三次回车。一般用户目录下会有下面两个文件。
或者 cat ~/.ssh/id_rsa.pub 登录进入 gitee,在设置里面找到 SSH KEY 将.pub 文件的内容粘贴进去 使用 ssh -T git@gitee.com 测试是否成功即可
Git+码云教程 https://gitee.com/help/articles/410
六、在码云创建仓库
项目拉下来之后
七、创建项目微服务
商品服务、仓储服务、订单服务、优惠券服务、用户服务 共同: 1)、web、openfeign 2)、每一个服务,包名 com.atguigu.gulimall.xxx(product/order/ware/coupon/member) 3)、模块名:gulimall-product
创建完各个模块之后的项目结构图
八、导入数据库
码云地址:https://gitee.com/GeneralKid/gulimail
九、人人项目
1、下载人人项目
在码云上搜索人人开源,我们使用renren-fast(后端)、renren-fast-vue(前端)项目。
https://gitee.com/renrenio
git clone https://gitee.com/renrenio/renren-fast.git git clone https://gitee.com/renrenio/renren-fast-vue.git
下载到了桌面,我们把renren-fast移动到我们的项目文件夹(删掉.git文件),而renren-vue是用VSCode打开的(后面再弄)
在IDEA项目里的pom.xml添加一个renrnen-fast
gulimall-coupongulimall-membergulimall-ordergulimall-productgulimall-warerenren-fast
然后打开renren-fast/db/mysql.sql,复制全部,在sqlyog中创建库guli-admin,粘贴刚才的内容执行。
然后修改项目里renren-fast中的application.yml,修改application-dev.yml中的数库库的url,通常把localhost修改为192.168.174.128即可。
url: jdbc:mysql://192.168.174.128:3306/guli_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456
运行该java项目下的RenrenApplication
浏览器输入http://localhost:8080/renren-fast/ 得到{“msg”:“invalid token”,“code”:401}就代表无误
2、人人vue(npm)
用VSCode打开renren-fast-vue(如果自己搭建的话),如果是运行完整的代码,可以去课件里找gulimall-admin-vue-app
安装node:http://nodejs.cn/download/ 选择windows下载。下载完安装。
NPM是随同NodeJS一起安装的包管理工具。JavaScript-NPM类似于java-Maven。
命令行输入node -v检查配置好了,配置npm的镜像仓库地址,再执行
node -vnpm config set registry http://registry.npm.taobao.org/
然后去VScode的项目终端中输入 npm install,是要去拉取依赖(package.json类似于pom.xml的dependency),但是会报错
3、P16 npm install解决报错问题
摘自哔哩哔哩评论,亲测有效
关于新谷粒P16的前端项目使用npm install报错的问题,首先确保安装了python3.0以上版本,并配置全局变量其次大部分错误是报node-sass4.9.0安装失败。执行以下步骤可以完美解决首先把项目文件夹下的package.json里面的node-sass4.9.0改成4.9.2(不改可能也没关系,不过我改了,防止踩坑)然后项目文件夹下打开cmd命令窗口(和Visual Studio Code的终端命令是一样的)执行:npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/执行成功看看有没有报错,如果没报错执行下面命令npm install ,没报错就是安装成功,然后使用npm run dev 就ok了注:这么做得原理就是先单独从淘宝镜像吧nod-sass下载下来,然后再进行编译,因为这句命令好像是不成功的,(npm config set registry http://registry.npm.taobao.org/),默认从github下载,导致报错的如果之前安装失败的。先清理 缓存清理缓存:npm rebuild node-sassnpm uninstall node-sass
4、启动fast-vue项目
npm run dev
账号密码都是admin
十、人人项目-逆向工程
1、逆向工程搭建
git clone https://gitee.com/renrenio/renren-generator.git
下载到桌面后,同样把里面的.git文件删除,然后移动到我们IDEA项目目录中,同样配置好pom.xml
gulimall-coupongulimall-membergulimall-ordergulimall-productgulimall-warerenren-fastrenren-generator
在maven中刷新一下,reimport重新导入依赖。
修改application.yml
url: jdbc:mysql://192.168.174.128:3306/gulimall-pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456
然后修改generator.properties(这里乱码的百度IDEA设置properties编码)
# 主目录mainPath=com.atguigu#包名package=com.atguigu.gulimall#模块名moduleName=product#作者author=zxl#表前缀(类名不会包含表前缀) # 我们的pms数据库中的表的前缀都pms# 如果写了表前缀,每一张表对于的javaBean就不会添加前缀了tablePrefix=pms_
运行RenrenApplication。如果启动不成功,修改application中是port为801。访问http://localhost:801/
在网页上下方点击每页显示50个(pms库中的表),以让全部都显示,然后点击全部,点击生成代码。下载了压缩包
解压压缩包,把main放到gulimall-product的同级目录下。
2、common项目
然后在项目上右击(在项目上右击很重要)new modules— maven—然后在name上输入gulimall-common。
在pom.xml中也自动添加了gulimall-common
在common项目的pom.xml中添加
com.baomidoumybatis-plus-boot-starter3.3.2org.projectlomboklombok1.18.8org.apache.httpcomponentshttpcore4.4.13commons-langcommons-lang2.6
我们把每个微服务里公共的类和依赖放到common里。
然后在product项目中的pom.xml中加入下面内容,作为common的子项目
com.atguigu.gulimallgulimall-common0.0.1-SNAPSHOT
复制
renren-fast----utils包下的Query和PageUtils、R、Constant复制到common项目的java/com.atguigu.common.utils下。
把@RequiresPermissions这些注解掉,因为是shiro的
复制renren-fast中的xss包粘贴到common的com.atguigu.common目录下。
注释掉product项目下类中的//import org.apache.shiro.authz.annotation.RequiresPermissions;,这是shiro的东西
注释renren-generator\src\main\resources\template/Controller中所有的@RequiresPermissions。## import org.apache.shiro.authz.annotation.RequiresPermissions;
总之什么报错就去fast里面找。重启逆向工程。重新在页面上得到压缩包。重新解压出来,不过只把里面的controller复制粘贴到product项目对应的目录就行。
测试
测试与整合商品服务里的mybatisplus
https://mp.baomidou.com/guide/quick-start.html#配置
在common的pom.xml中导入
mysqlmysql-connector-java8.0.17javax.servletservlet-api2.5provided
删掉common里xss/xssfiler和XssHttpServletRequestWrapper
在product项目的resources目录下新建application.yml
spring: datasource: username: root password: root url: jdbc:mysql://192.168.174.128:3306/gulimall-pms driver-class-name: com.mysql.jdbc.Driver# MapperScan# sql映射文件位置mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto
然而执行后能通过,但是数据库中文显示乱码,所以我模仿逆向工程,把上面的配置url改为
url: jdbc:mysql://192.168.174.128:3306/guli_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
正常了。
然后在主启动类上加上注解@MapperScan()
@MapperScan("com.atguigu.gulimall.product.dao")@SpringBootApplicationpublic class gulimallProductApplication {public static void main(String[] args) {SpringApplication.run(gulimallProductApplication.class, args); }}
然后去测试,先通过下面方法给数据库添加内容
@SpringBootTestclass gulimallProductApplicationTests {@Autowired BrandService brandService; @Test void contextLoads() {BrandEntity brandEntity = new BrandEntity(); brandEntity.setDescript("哈哈1哈"); brandEntity.setName("华为"); brandService.save(brandEntity); System.out.println("保存成功"); }}
在数据库中就能看到新增数据了
@SpringBootTestclass gulimallProductApplicationTests {@Autowired BrandService brandService; @Test void contextLoads() {BrandEntity brandEntity = new BrandEntity(); brandEntity.setBrandId(1L); brandEntity.setDescript("修改"); brandService.updateById(brandEntity); }}
3、coupon
优惠券服务。重新打开generator逆向工程,修改generator.properties
# 主目录mainPath=com.atguigu#包名package=com.atguigu.gulimall#模块名moduleName=coupon#作者autho=zxl#表前缀(类名不会包含表前缀) # 我们的pms数据库中的表的前缀都pms# 如果写了表前缀,每一张表对于的javaBean就不会添加前缀了tablePrefix=sms_
修改yml数据库信息
spring: datasource: username: root password: root url: jdbc:mysql://192.168.174.128:3306/gulimall-sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: id-type: auto logic-delete-value: 1 logic-not-delete-value: 0 server: port: 7000
标签:
相关推荐:
最新新闻:
- 如何将图像数据编码为比特流?转换方法步骤
- PF的关键字顺序有多灵活?PF防火墙最详细教程
- 国外开发API,api地址、Authentication认证
- 华为t2010怎么刷机?华为t2010刷机教程及评测_全球今日报
- windows7桌面图标怎么改大小?修改方法步骤
- iphone4s怎么设置彩信?iphone4s联通卡彩信设置方法
- 什么软件修图较好?图片处理有哪些技巧?
- 国内常用的ntp服务器 国内常用NTP服务器地址及IP_环球新视野
- rocketdock怎么操作?rocketdock教程之程序设置-环球热消息
- 当前速读:QQ火炬手图标怎么关闭?关闭图标方法介绍
- 【世界速看料】戴森v7v8v10什么区别?V6和V8的区别介绍
- linux主机的详细介绍 linux主机安装的八个步骤_全球讯息
- 环球速读:富可视m310怎么刷机?富可视m310刷机教程
- 天天观焦点:Docker基于镜像 可以秒级启动各种容器
- 手机wifi密码破解器哪个好用?手机wifi密码破解器介绍
- 天天即时:淘宝拥有注册会员1.7亿 注册用户不断增长
- 手摇甘蔗榨汁机怎么样?品牌有哪些? 天天视讯
- androidstudio发现环境坏了 jdk出问题了?
- 天天信息:linux内核编译ccflag,linux-内核编译 centisecs文件控制内核参数
- 全球今头条!连连支付怎么样?连连靠谱吗?
- 每日关注!identity字段怎么使用?identity字段的基本用法及使用方法
- 惠普笔记本电脑 设备管理器中双击未知设备的解决方案|每日播报
- 【盗梦空间】潜行凶间(港)全面启动
- AngularJS中的refresher该如何使用?使用技巧|动态
- 联想s720i配置怎么样?联想s720i配置总结|热文
- 【证书】PFX证书、CER证书申请流程详解
- dockerexec-itoracle11g创建容器实例分享
- PocketTrail实现拖尾效果的脚本及说明|焦点短讯
- 当前报道:功放如何连接?功放机接线图详解
- 手机无限重启或无法开机怎么办?索爱st25i强刷教程及注意事项 快报
- 头条:绿色出行新方式:共享汽车APP的交互体验
- 环球观焦点:B站视频播放源地址获取及B站视频下载
- 复旦壁纸:手绘正校门1024、7681280
- 佳能IP1180怎么样?佳能IP1180详情介绍
- 天天热门:象棋里的卧槽马是什么?典型案例分享
- 无法访问文件夹怎么办?无法访问文件夹的原因和解决方法-焦点速看
- 设计带构造函数的Dog类 对数据成员进行初始化
- 焦点报道:薛定谔的猫和EPR佯谬——量子力学史上的经典术语
- 网银无法登陆怎么办?网上银行登录安全控件
- 联想昭阳E46G能玩魔兽世界吗?显卡集显特效开起来根本没办法玩
- 最新:在百度里下载格式工厂——KuGo格式
- speedtest-cli|网速测试工具命令行方式
- 【数据更新】全国上网卡专属号段数据汇总
- 全球新动态:Calendar类:日历字段的转换方法
- 数据字典中的同义词:user_synonyms
- 非定常约束:几何约束与完整约束的区别
- 图片文件合成器是什么?图片、文件合成器的原理与方法
- 天天微头条丨企业的经营性现金流与净利润的含金量有多大?
- 微头条丨java timestamp 格式化_java日期处理(Timestamp)
- 【世界时快讯】《满江红》让杭州岳王庙成热门打卡地:秦桧像曾被砸烂9次
- 非定常约束:几何约束与完整约束的区别
- 焦点报道:薛定谔的猫和EPR佯谬——量子力学史上的经典术语
- 微头条丨java timestamp 格式化_java日期处理(Timestamp)
- 【世界时快讯】《满江红》让杭州岳王庙成热门打卡地:秦桧像曾被砸烂9次
- 【世界快播报】《如龙:维新!极》“复仇之刃”预告 全新截图欣赏
- 音游《最终幻想:节奏剧场》试玩版2月1日上线
- 【环球速看料】《死亡空间:重制版》开发者讨论该系列未来发展
- 索尼承诺在PSVR2发行前“增加PS5主机供应”:全球要闻
- 财报预警!三大航空公司合计预亏超千亿,昔日养猪巨头亏损超百亿
- 郭明錤:可折叠iPad或明年问世,今年苹果可能不会发新品,出货至少下降10%
- 热点在线丨《死亡空间》重制版不支持Steam deck
- 三星新款翻转笔记本曝光:高配13代i9-13900H
- NBC季度亏损10亿!好于华尔街预期
- 无人驾驶出租?旧金山表示先缓缓_世界新资讯
- 联想拯救者新品将用上超频内存 支持DDR5-6000_环球快看点
- 突发!伦敦街头惊现《战神》利维坦之斧:外观霸气 地面开裂
- 全球观热点:青海春天药用资源科技股份有限公司 2022年度业绩预亏暨风险提示公告
- Xbox金会员2月会免游戏公布 《为了吾王》等
- 兔年首个交易日,两大股东公告“抢筹”兴业银行
- 【世界热闻】曝百度将推人工智能聊天工具:类似ChatGPT
- 环球微动态丨腾讯游戏春节7天吸金破4.5亿:《王者荣耀》收入超3千万!
- 国产《时灵:星辰愚者》2月14日发售 登陆PS5/PC/NS
- 暴雪游戏国服“头七” 你找到合适的平替游戏了吗?
- 《流浪地球2》MOSS和末日铁拳是一个配音演员:给破球来个上勾拳!:世界快消息
- 【环球速看料】PS5广告:奎爷利维坦巨斧现身英国伦敦
- 效仿印尼,全球第二大镍生产国菲律宾考虑对镍出口征税
- 摩根士丹利“大空头”警告:不要参与反弹行情,美股熊市还没结束
- 消费者遭遇特步反向抹零 特步回应:系统设置四舍五入
- 超4000万!Capcom称当前财年销量有望是史上最高一年:全球即时看
- 最新:我爱我家2022年业绩预告:聚焦品质服务 推进精细运营
- 我家的春节泡汤了,因为家里有人没阳
- 《卧龙:苍天陨落》中有“黑暗熊猫”登场:不会伤人的可爱萌物-世界最新
- 快看点丨消费修复成色几何?
- 世界今日讯!以技术革新引领绿色制造 三菱电机助力碳中和愿景
- 颜值绝了!荣耀Magic5 Lite渲染图曝光