仓库(Repository)是docker的重要概念之一,它是集中存放镜像的地方。docker官方提供了镜像仓库 Docker Hub。
大多数情况下我们可以直接下载官方的镜像,直接使用或进行二次配置。
docker仓库(Repository)
docker镜像(Image)
镜像在学习docker的过程中非常重要,创建出一个适用于自己的镜像,才能让业务系统准确运行。
docker容器(Container)
容器就是独立运行起来的程序,一个容器就好比你在虚拟机里装好的一个系统。
我们可以创建、启动、停止、删除它。同时也可以将容器需要的数据放在容器之外。比如有一个数据库容器,里面有mysql服务,但数据不能放在容器里。我们可以把数据放在主机里,通过映射的方式让容器访问。
1.docker基础概念
docker介绍
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)。
社区办免费使用。企业版由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件。
openresty+lua+kafka部署
python mysql-connector简要说明
安装插件
1 | python -m pip install mysql-connector |
建立链接
1 | import mysql.connector |
conn就是mysql的链接对象,它可以提交开启事务、提交、回滚,也可以关闭来mysql断开链接
查询操作
执行查询,需要经过以下几个过程:
- 获取一个游标,数据操作都是基于游标来处理。链接的cursor方法会返回一个游标,如上面
conn.cursor()
就会返回游标。 - 调用游标的execute方法,执行sql。
- 获取执行结果,我们可以用fetchone()一次获取一条记录,也可以用fetchall(),一次性获取所有记录。
1
2
3
4
5
6
7
8
9
10
11cursor = cnn.cursor()
try:
sql_query = 'select name,age from stu ;'
cursor.execute(sql_query)
for name, age in cursor:
print (name, age)
except mysql.connector.Error as e:
print('query error!{}'.format(e))
finally:
cursor.close()
cnn.close()
linux 为php7.0安装redis扩展
先决条件
php一定要有phpise
组件,如果是编译安装一般是有的,如果是apt或yum不一定有。也很简单,安装个php-dev就可以了。
另外gcc等必备的包,安装过程中缺什么就按什么。
笔记以apt安装php环境为基础做记录
开始安装
安装扩展
1
2
3
4
5wget https://github.com/phpredis/phpredis/archive/4.0.2.tar.gz
tar -zxvf 4.0.2.tar.gz
cd phpredis-4.0.2
./configure --with-php-config=/usr/bin/php-config7.0
make && make installphp-config是一个获取php配置的程序,一般在php安装目录的bin目录下。多版本共存的情况下安装扩展可以让扩展准确知道,这是给哪个版本安装。
如果是apt安装的php,可以使用whereis php-config
查看该文件所在目录。如果是自己编译安装更容易找,到安装目录下的bin目录就找到了。启用扩展
找到vi /etc/php/7.0/fpm/php.ini
在里面添加extension=redis.so
就可以了。
如果想在命令行模式下也使用这个扩展,可以在/etc/php/7.0/cli/php.ini
里也添加extension=redis.so
。重启php-fpm和nginx
1
2service php-fpm7.0 restart
systemctl restart nginx经过这些处理redis扩展就可以正常使用了。
参考资料
https://www.cnblogs.com/eeds-wangwei/p/11016160.html
https://github.com/phpredis/phpredis
解决深度终端链接远程后假死问题
起因
这是最近才出现的问题,忽然发现,深度终端链接远程服务器后,过一会就假死了。还以为是不小心安了ctrl+s,于是用ctrl+q也无法解开。依然不能输入任何内容。链接状态是保持的,但就是假死了。
在网上搜索了一下找到了解决办法。
解决方法
可以修改配置文件, 在~/.bash_profile
或者~/.bashrc
的配置文件里面加上下面的参数了:
1 | stty -ixon |
保持退出,执行下面的命令让配置生效
1 | source .bashrc |
这样就不会出现假死了。
还有一种方式,链接ssh之前增加一个-o ServerAliveInterval=60
参数
1 | ssh -o ServerAliveInterval=60 root@192.168.0.2 |
shadowsocks客户端启动报错问题
问题描述
1 | sslocal -c shadowsocks.json |
报如下错误
1 | INFO: loading config from shadowsocks.json |