这里不推荐直接使用 sudo yum install -y docker-ce 来安装docker,centos自带源的docker版本会相对老旧,也可能根本不存在

在这里我讲的是在 CentOS Linux release 7.4.1708 (Core) 的环境下操作的,理论上centos7通用

0.预备操作

官方推荐的操作,先将计算机内存在的老旧docker相关软件删除

sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

安装必要的工具

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

添加docker自己的官方源

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

当然这时,你就可以使用 sudo yum install docker-ce 安装最新的docker社区版本了。有特殊要求或者不想使用最新的edge版本,可以继续接着看下去

1.开始

这里的操作都是视你为第一次安装docker

使用 yum list docker-ce --showduplicates | sort -r 查看当前docker社区版本的版本号选择安装

# 这是我写这篇文章时的相关版本信息
docker-ce.x86_64            17.11.0.ce-1.el7.centos             @docker-ce-edge
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable

第一列为 包名
第二列为 版本名
第三列为 标识稳定或测试

我们今天当然不可能安装第一行的那个家伙,至少第一行下面的那些我们都可以安装

我们安装就需要把列出来的信息组成包名

比如选取第二行这条

docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable

包名 = 第一列点号前半部分 + '-' + 第二列

中间使用 - 连接

得出的包名就是酱紫的 docker-ce-17.09.0.ce-1.el7.centos

现在可以开始安装啦

sudo yum install docker-ce-17.09.0.ce-1.el7.centos

。。。等待安装完成,漫长的安装过程(视机器性能配置,安装时长会有所变化)

安装完成就可以执行下面的操作了

# 开启docker
sudo systemctl start docker

# 添加开机启动(可选)
sudo systemctl enable docker

试试docker?

# 查看版本信息是否与安装时的相符合
docker version

正常执行有输出就ok了

PS: 如果你不是使用的root账户登陆,还需要添加docker组,将当前用户添加到docker组去

# 创建docker用户组
sudo groupadd docker
# 将当前用户添加到docker组内,$USER是用户的环境变量
sudo gpasswd -a $USER docker
# 这个时候还需要 restart 重启一下docker,我不也不知道为什么reload 重载配置对docker无效
sudo systemctl restart docker

2.安装docker-compose(可选)

有什么很牛逼的作用,我现在也说不上来,毕竟所有时间加起来也才看了两天不到的样子

这里我就从不知名处截取介绍给你们看吧

Docker Compose是Docker编排服务的最后一块,前面提到的Machine可以让用户在其它平台快速安装Docker,Swarm可以让Docker容器在集群中高效运转,而Compose可以让用户在集群中部署分布式应用。简单的说,Docker Compose属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

官方安装命令,版本号 1.17.0 可以替换最新,github页面查看

sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

修改命令权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本信息

docker-compose version

出下一篇是不可能的辣,这辈几都是不可能滴辣,steam上游戏辣么好玩,辣么多漂亮的大雕萌妹,说话又好听,我炒鸡喜欢那里辣,下一篇?不可能滴辣

今天装了个docker哟,挂着服务想要试试压力测试

在自己的服务器上试着用了一下 ab 命令,出现 zsh: command not found: ab

好吧,还要安装一下,sudo yum search ab,告诉我没有可用的软件包,这个就奇怪了

查找文档...

解决

sudo yum provides /usr/bin/ab
Loading mirror speeds from cached hostfile
 * base: mirror.fileplanet.com
 * elrepo: ftp.yz.yamagata-u.ac.jp
 * epel: dl.fedoraproject.org
 * extras: mirror.fileplanet.com
 * updates: mirror.fileplanet.com
httpd-tools-2.4.6-67.el7.centos.x86_64 : Tools for use with the Apache HTTP Server
源    :base
匹配来源:
文件名    :/usr/bin/ab

使用 httpd-tools-2.4.6-67.el7.centos.x86_64 这个包名

执行

sudo yum install -y httpd-tools-2.4.6-67.el7.centos.x86_64

安装完成,美滋滋

晚上更新docker, Mastodon, Gitlab的相关文章

这个星期正好双休,借着下午的时间去电影院看了《二十二》,我其实是非常想爆粗说日本操你妈个逼,但是不行,两国的人民都不会希望战争的再一次洗礼摧残,我只求世界和平。

不知是大家的无知还是无识,现在没有多少人,加我在一起一只手就数的来了,“你们”不想看的话,我来帮你们看吧。

或许我该庆幸正是没有多少人,才有非常不错的观影体验,能够潜下心,细细观看当中的动作,言语。

当时我也不知道是播放到什么时候了,出现了一位老人,老人名叫李爱莲,回想整篇电影,她是现在最乐观,开心的一位老人了。(有兴趣可以去看看纪录片《三十二》,韦绍兰老人也是一位乐观阳光的老人,不幸的是在电影放映前早已抱憾离世)

她讲述她当时的环境与所受到的遭遇,也是说的最清楚的一位,每当讲述到关进“那所房子”的事情,所有的老人都是难以掩饰自己的情绪。

片子是以我们日常的视角来拍摄的老奶奶们,大概是要我们理解,她们就是普普通通的一个老人,和我们的爷爷奶奶爸爸妈妈一样,都是一个在我们身边生活的一个人!虽然她们和我们一样,但是在那个时代,在她们的身上发生了一些不被我们了解的事情。

扒开了她们的伤口,我们看了个究竟,陪着一起她们哭,一起笑。她们一个人受到巨大且沉痛的伤害,还能在世间如此生活,是有多么大的勇气啊,都是勇敢的战士!

在电影院看的时候真的是泪滴就挂在眼睛上打转,几位老人简单的话语,却有着强大的力量,希望老人开心的度过晚年生活,欠你的一声道歉我们后人为你取回。

愿世上再无战争,愿世间再无苦难。

愿世界和平。

      • -

你怎么自己来了?你的孩子呢? —— 李爱莲老人

我宁愿自己死,也不跟你说。 —— 毛银梅老人

这世界真好,吃野东西都要留出这条命来看。 —— 韦绍兰老人

希望中国和日本要一直友好,不要再打仗,会有很多人死去的。 —— 日本友人米田麻衣

我只能选择平静,机器摆在门口,远远的深情的看她们一眼,我觉得这就足够了。 -- 导演郭柯

记录是为了“记住”,不怨才能“不忘”

以前的接口应该都不能用了,毕竟是个单文件写出来的,也没有用nginx做伪静态,现在取消了文件后缀是必要的,为了之后的功能扩展不得已而为之。

v2说明

重构使用的CI框架,算是学习PHP第一次接触的框架了,重新上手写写小项目还是挺容易的,2.0版本的url的书写有些是按照RESTsulAPI的规范书写的(强迫症是极好的),以后的接口变动基本就没变化了,相应的只是参数的新增与功能添加了。

对于现在的接口规范来说,开始我是倾向于在 主域下的一级目录分发接口的 api.flxxyz.com/api/*

实行之后发现在 Api.php 中会过于庞大,而且接口所调用的方法都是不一致的,都是独有的,因为这些特性才变成现在的样子

      • -
        相应接口:
    • api.flxxyz.com/hitokoto/api
    • api.flxxyz.com/qq/api
    • api.flxxyz.com/bing/api
    • api.flxxyz.com/miaopai/api
    • api.flxxyz.com/ip/api
      • -

喜欢的可以给我个star哟~

项目地址: https://github.com/flxxyz/api.flxxyz.com

到当前的 Homestead 目录下,打开 Homestead.yml ,然后你懂的

site: 下,按一下格式添加站点

- map: homestead.app           // 站点域名
  to: /home/vagrant/Code/Laravel/public    //站点目录

有需要的话,可以在 folders: 下,添加共享目录,方便本地编辑,虚拟机实时读取了

- map: E:\Work\virtualBox\homestead\site   // windows用户是用这种路径
  to: /home/vagrant/Code/site              // 开启共享目录之后,虚拟机会存在的目录

拜拜ヾ(•ω•`)o

Vue.component(组件名, {
    template: 模板ID, // 使用script与template标签均可实现
    props: [传递数据参数],
    methods: {
        方法名: function () {}
    }
});

单文件可以参考上篇

我是使用import导入没有问题,用webpack生成的时候,发现用Vue.component()注册会报错,检查发现解决方法,删除new里的components
?

import xyz from './components/head.vue';

使用全局注册组件时,须将new中的components删除

Vue.component('xyz ', require('./components/head.vue'));

new Vue({
    el: '#app'
    //components: { xyz }
})

近期在学习laravel的使用

以前听说过,当时自己不知道为什么对thinkphp着魔,上手停不下,中文文档写的很好让国人理解,我也就是这其中的国人,那个时候thinkphp5还在测试阶段,有点小关注,发现与原来的使用差距有点大,没有继续看了(因为我懒吧?)

使用thinkphp之前,还有段时间学习过CodeIgniter俗称CI,是真的很小巧,小巧到很尴尬的境地,具体

当然,由于它的小巧再实现一些微型项目时,用用还是挺方便的,使用要求也没什么,基本就是上传即可开始使用。

因为我懒,于是就有放弃CI使用thinkphp的历史痕迹了

最近接触了laravel大家说的优雅是有其它的道理的

  1. 使用composer来管理依赖,抛弃手动require
  2. 结合php命令行操作
  3. 清晰有条理的路由管理
  4. 目录命名用意一目了然
  5. Eloquent ORM
  6. 查询构造器
  7. 结合bootstrap做成小demo非常快速(5.4修改源码可以使用bootstrap4相关)
  8. 目前我使用后的特性,还有许多我还没接触到的特性...

就在这些学习的过程中,感觉自己是可以有一定能力开发的

但是!!!深刻的感受到自己的基础知识脆弱不堪,理论体系非常不完善,缺口巨大

如:自己以前文章的内容有一长串字符串的出现,由于其中夹杂着中英文,做出的截取不能使用substr(),而要使用 mb_substr(),但是这里的bug是中文是3个字符(使用的utf-8编码),英文只占1个字符,对中英文混合输入的bug必然是会出现乱码的。

"这是一段abc字符串123大家壕"

使用 strlen() 与 mb_strlen() 结果

echo strlen("这是一段abc字符串123大家壕");
// 输出  36
echo mb_strlen("这是一段abc字符串123大家壕");
// 输出  16

使用 mb_substr() 截取前6个字符

echo mb_substr("这是一段abc字符串123大家壕", 0, 6);

当然你会说,这个没有问题好嘛,substr() 就是把每个字*3了

是的,没有错,但是这一切的前提下,全部是utf-8的编码集

echo mb_substr("这是一段abc字符串123大家壕", 0, 6, "gbk");
// 这是一��

这个小例子的实现让我简单的思考了一下接下来的学习进展,放慢脚步,深入的学习语言现有所带来的特性,充分利用自带功能,何必在自造轮子(我想我造出来的轮子应该是没有自带的好用的)

潜心,静气,思考

--------------------- 分割线 ---------------------------

另外 mb_strcut() 对比 mb_substr() 还是感觉好用点,精确到字节操作