Docker容器间通信

Docker中容器间的通信方式有哪些?

1.通过容器ip访问
容器重启后,ip会发生变化。所以通过容器ip访问不是一个好的方案。

2.通过宿主机的ip:port访问
通过宿主机的ip:port访问,只能依靠监听暴露出的端口的进程来进行有限的通信。

3.通过link建立连接(官方不推荐使用)

4.通过Docker桥接网络实现容器间相互访问(推荐)

第1/2种方式比较简单,在此主要讲述下第3/4种方式。

通过link建立连接

MySQL数据库全量备份脚本(Windows版)

MySQL数据库全量备份bat(Windows)脚本,备份核心逻辑:

  1. mysqldump全量导出数据库文件;
  2. 压缩备份文件;
  3. 备份脚本由Windows计划任务定时触发;

创建Windows计划任务核心命令如下:

schtasks /create /F /tn %taskName% /tr %cd%\bin\mysql_backup.bat /sc daily /st 18:00

详细脚本如下:

常见消息中间件MQ介绍及对比

常见消息中间件MQ介绍

ActiveMQ
Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:in-VM, TCP, SSL, NIO, UDP, multicast, JGroups and JXTA transports。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。

Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性:

MySQL数据库常用命令

MySQL中自增ID起始值修改方法
表名:users;
建表时添加:
create table users(id int auto_increment primary key,666);
表已创建,修改:
alter table users add id int auto_increment primary key; #将自增字段设置为primary key
alter table users AUTO_INCREMENT=10000;

MySQL数据库新建用户命令:
create user '用户'@'访问IP' identified by '密码';
例如,创建test用户,允许所有IP访问:
create user 'test'@'%' identified by '123456' with grant option;