docker的使用

最近因为项目上要部署多个前后端分离的应用,要配置多个环境,正好最近在学习docker容器技术,所以可以用docker 来部署应用。
先要安装docker,安装docker 比较简单,本例基于centos7 yum 安装.

1
yum install docker-ce

docker 安装好了,使用下面的命令来启动应用

1
2
systemctl start docker 
chkconfig docker on

测试是否安装好:

1
docker version

上述命令,返回docker的版本信息,证明docker安装成功
接着,因国内的用户连接Docker官方仓库很慢,我们需要修改docker中国的官方镜像registry.docker-cn.com,配置如下 :

1
vi  vi  /etc/docker/daemon.json

#添加后

1
2
3
4
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}/etc/docker/daemon.json

然后通过与远程docker仓库检索出官方的镜像,一般用git rearch可以找到解决:下面以安装tomcat来示例。

1
2
3
4
5
6
7
8
9
10
docker pull tomcat
docker images
docker images
#显示结果
REPOSITORY TAG IMAGE ID CREATED SIZE
benling/tomcat latest f2a91732366c 3 months ago 1.848 kB
```
运行这个容器,就可以进行使用了。
``` bash
docker run -d -p 8000:8080 benling/tomcat

mysql

mysql float类型转换问题

最近在做一个项目的时候,因为要写一些mysql的存储过程,在对存储过程进行调试时,发现在删除数据库表的记录时,一直找不到这条记录,但是查询又可以查询到,很是诡异,特记录下,请看代码:

1
delete from order_log where user_id = 20 and cost = 399.00 and status = 1;

字段cost是float(10,2)类型,本来是一个很简单的sql语句,但是一直就是没法删除这条数据,特别奇怪,后来在stackoverflow上看到了答案,遇到float类型的数据,一定要这样写:

1
delete from order_log where user_id = 20 and (cost -399.00) < 0.001 and status = 1;

这样才真正执行这条删除语句。

mysql 存储过程、触发器原则

从mysql 5.0开始,就支持存储过程和触发器,很多大厂也都是使用mysql关系型数据库,mysql是市场占有率很高的一款数据库产品。因此,我们在开发应用的时候,除了通过程序来实现业务场景之外,还可以通过存储过程和触发器直接操作数据库,实现业务逻辑。这也是代码之外的另一种解决方案。
但是,在实际应用当中,存储过程和触发器不是越多越好,也是需要根据业务逻辑、技术栈选型来决定。一般原则是尽量不用触发器,因为触发器是行级遍历,会对每一条记录都进行遍历操作。使用太多,会导致数据库性能下降。数据多时严重影响性能。因此,建议能不用触发器就不用。而存储过程则没有太多限制。

mysql procedure调试工具:Debugging MySQL

这次项目是做分销系统,除了两级分销之外,还要进行代理商的分佣操作,代理商分为五个等级。业务逻辑比较复杂,因此,用到很多的存储过程,且存储过程代码很多。而在mysql上,目前还没有一个好的调试存储过程的工具,刚开始,有人给我推荐了这个:dbForge Studio for MySQL ,产品好是好,就是要收费,且不便宜。但我的电脑上确安装不上,一直报错,于是卸载了,重新再找了一款:Debugging MySQL,也是收费的,但有14天的试用时间,足够拿来测试用了。avatar,挺不错的一款调试软件,推荐大家使用。

hexo博客配置

欢迎光临,本人coder码农,主要关注于web编程、python、linux运维、大数据、人工智能领域。学习是无止境的,活到老学到老,俗话说,好记性不如烂笔头,为此,开通博客,记录学习的点滴过程。

博客搭建过程

安装node js

到nodejs的官网下载,地址在【这里】,过程就不说了,windows系统下直接点击安装即可。以下命令验证是否安装成功。

1
$ node -v

如显示版本号则安装成功。

安装Git

git 官网下载安装,地址在【这里】,过程不多说了。以下命令验证是否安装成功。

1
$ git --version

安装hexo

目前我本机安装的hexo版本是3.7.1,windows下打开命令行工具的快捷键是win + R 组合键,输入cmd,回车即可打开命令行。安装hexo是基于node的包管理工具npm,我这安装的是hexo的快速开发框架 hexo-cli,命令如下:

1
2
$ npm install -g hexo-cli 
$ npm install hexo --save

-g是基于全局安装,–save是保存在package.json依赖配置文件中,不需要手工去修改这个配置文件。

创建项目

通过hexo的快速开发框架,可以快速的创建一个工程项目,并可以启动预览。命令如下:

1
$ hexo-cli init project_name

project_name是工程荐名称,回车后,hexo会自动创建一个项目,并下载项目所需要依赖的相关库。这个过程可能会持续一段时间,视网络情况而定。

启动项目

通过以下命令可快速启动。

1
$ hexo server

也可以简写成以下命令格式:

1
$ hexo s

打开浏览器,输入http://localhost:4000即可打开博客网站。
如果要生成静态文件,可以执行以下命令:

$ hexo g

具体详情见hexo官网,在【这里】

部署网站

网站部署,如果要部署到github,则还需要有github帐号,并且在github上要建有以你的github帐号名为前缀的仓库,例如:你的github帐号名是:jack,则仓库名为:jack.github.io.否则其它名称不能自动打开博客首页。以下是部署命令。

$ hexo deploy

另外要注意的点是,部署前,要在_config.yml文件中修改你的git提交仓库地址。通过git的push 命令提交到github。
操作起来其实蛮简单的,博客部署好后,就可以按自己的意愿,利用markdown语法写文章了。