利用Docker做集群管理
程序员文章站
2022-07-15 14:20:54
...
安装Docker:
1、在CentOS下使用yum安装Docker并启动
yum -y install docker
systemctl start docker
2、查看Docker信息:
docker version
docker info
Docker安装MySQL:
1、下载MySQL镜像:
docker pull mysql:5..7.0
2、查看镜像:
docker images
3、通过镜像创建并运行MySQL容器,并映射到宿主机上:
docker run -d -p 3306:3306 --name 容器名
-v /root/docker/mysql/conf:/etc/mysq/mysql.conf.d
-v /root/docker/mysql/data:/var/lib/mysql
-v /root/docker/mysql/log:/var/log/mysql/mysql.log
-e "MYSQL_ROOT_PASSWORD=密码" mysql:5.7
4、删除容器:
docker rm 容器名
5、删除镜像:
docker rmi 镜像名
6、进入容器:
docker exec -it 容器名 /bin/bash
Docker安装MySQL集群:
需要准备的目录结构
1、配置主库:
第一步:master配置文件内容
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
log-error=/var/log/mysql/error.log
server-id=1
log-bin=/var/log/mysql/mysql-bin.log
expire_logs_days=30
max_binlog_size=256M
symbolic-links=0
第二步:创建并启动主容器:
docker run -d -p 3306:3306 --name mysql-master
-v /root/docker/mysql/master/conf:/etc/mysq/mysql.conf.d
-v /root/docker/mysql/master/data:/var/lib/mysql
-v /root/docker/mysql/master/log:/var/log/mysql
-e "MYSQL_ROOT_PASSWORD=密码" mysql:5.7
第三步:重启MySQL服务
docker restart mysql-master
第四步:进入容器:
docker exec -it mysql-master /bin/bash
第五步:进入MySQL做如下操作
mysql -u root -p
grant replication slave on *.* to 'slave'@'%' identified by 'oneslave';
flush privileges;
show master status;
2、配置从库:
第一步:修改配置文件:
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
log-error=/var/log/mysql/error.log
server-id=2
log-bin
symbolic-links=0
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
第二步:创建并启动容器
docker run -d -p 3307:3306 --name mysql-slave-1
-v /root/docker/mysql/slave-1/conf:/etc/mysq/mysql.conf.d
-v /root/docker/mysql/slave-1/data:/var/lib/mysql
-e "MYSQL_ROOT_PASSWORD=密码" mysql:5.7
--link mysql-master:mysql-master mysql:5.7
第三步:连主机
docker exec -it mysql-slave-1 /bin/bash
mysql -u root -p
rest slave;
change master to master_host='mysql-master',master_user='oneslave',master_log_file='主机找',master_log_pos=主机找;
start slave;
show slave status \G;
Docker中Redis集群:
第一步:查看容器ip
docker inspect --format '{{.NetworkSettings.IPAddress}}' 容器id
redis-server --slaveof
第一步:创建主机容器
docker run -d -p 6370:6379 --name redis-master redis:latest redis-server --requirepass 密码
第二步:创建从机容器
docker run -d -p 6380:6379 --link redis-master:别名
--name redis-slave-1 redis:latest redis-server --slaveof 别名 6379 --masterauth 密码
docker run -d -p 6381:6379 --link redis-master:别名
--name redis-slave-2 redis:latest redis-server --slaveof 别名 6379 --masterauth 密码
docker run -d -p 6382:6379 --link redis-master:别名
--name redis-slave-3 redis:latest redis-server --slaveof 别名 6379 --masterauth 密码
第四步:验证
docker exec -it redis-master /bin/bash
redis-cli
auth 密码
info replication
Docker构建自己的镜像:
方法一:commit
第一步:创建自己的镜像:
docker commit 容器id 前缀/镜像名
第二步:将镜像打包
socker save 前缀/镜像名 -o mysql.tar
第三步:
别人下载:
第四步:
docker load mysql.tar
方法二:使用Dockerfile构建镜像
第一步:
第二步:
第三步:
docker build -t '镜像名'
Nginx文件结构
上一篇: 利用AlwaysInstallElevated提权
下一篇: Vegile实现linux后门隐藏