容器简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
CentOS 7 安装docker
安装必要的一些系统工具
1  | yum update  | 
1  | $ yum install -y yum-utils device-mapper-persistent-data lvm2  | 
添加软件源信息
1  | $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  | 
更新并安装 Docker
1  | yum makecache fast  | 
注意:
1  | 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。  | 
注册一个阿里的账号,
进入加速器页面https://cr.console.aliyun.com/#/accelerator
1  | vim /etc/docker/daemon.json  | 
内容如下
1  | {  | 
重启docker
1  | systemctl daemon-reload  | 
常用docker命令
查看运行容器
1  | docker ps  | 
查看所有容器
1  | docker ps -a  | 
进入容器
其中字符串为容器ID:
1  | docker exec -it d27bd3008ad9 /bin/bash  | 
1.停用全部运行中的容器:
1  | $ docker stop $(docker ps -q)  | 
2.删除全部容器:
1  | $ docker rm $(docker ps -aq)  | 
3.一条命令实现停用并删除容器:
1  | $ docker stop $(docker ps -q) && docker rm $(docker ps -aq)  | 
安装mariadb
centOS上比yum安装mysql要方便.
###安装mysql-client,用于访问mysql容器数据库
1  | yum -y install mariadb  | 
单独MySQL模式
1  | docker run -d \  | 
MariaDB MASTER
进入容器需要修改镜像
将下面内容添加进/etc/mysql/conf.d/*.cnf
从机server-id=2
1  | [mysqld]  | 
提交
1  | docker commit -m "set log bin on" -a "lional" d27bd3008ad9 mariadb-master:1.0  | 
运行master, 这里LOG_BIN参数没有用,所以在上面修改了镜像
1  | docker run -d \  | 
查询容器的ip地址
1  | $ docker inspect --format='{{.NetworkSettings.IPAddress}}' $(docker ps -a -q)  | 
1  | 172.17.0.2  | 
链接容器mysql
1  | mysql -uroot -padmin -h 172.17.0.2  | 
查看master是否启用了log_bin
1  | MariaDB [(none)]> show variables like '%log_bin%';  | 
查看主机状态,注意启动从机的时候bin和pos的参数
1  | MariaDB [(none)]> show master status;  | 
添加slave账户
1  | GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'reader';  | 
MariaDB SLAVE
没有sql导入的情况
1  | docker run -d \  | 
先用sql文件导入再同步
1  | docker run -d \  | 
需要把database.sql文件存提前存放在/data/mariadb-slave目录
进入slaver的mariadb
1  | mysql -uroot -padmin -h 172.17.0.3  | 
设置主库链接
1  | change master to master_host='172.17.0.2',master_user='slave',master_password='reader',master_log_file='mysql-bin.000003',master_log_pos=342,master_port=3306;  | 
启动从库同步
1  | start slave;  | 
查看状态
1  | show slave status\G;  | 
当看到
1  | Slave_IO_Running: Yes  | 
则启动成功
##docker redis 集群(cluster)搭建
顺带完成redis集群,安装依赖
1  | docker pull redis  | 
1  | docker pull ruby  | 
创建redis容器
1、创建redis配置文件(redis-cluster.tmpl)
我在路径/root下创建一个文件夹redis-cluster,在路径/root/redis-cluster下创建一个文件redis-cluster.tmpl,并把以下内容复制过去。
10.0.2.15 //自己的服务器ip
1  | port ${PORT}  | 
创建自定义network
1  | $ docker network create redis-net  | 
在/root/redis-cluster下生成conf和data目标,并生成配置信息
1  | for port in `seq 6379 6384`; do \  | 
创建6个redis容器
1  | for port in `seq 6379 6384`; do \  | 
通过启动ruby来实现集群
1  | echo yes | docker run -i --rm --net redis-net ruby sh -c ' \  |