一、docker是什么?
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现
二、docker环境准备
1.docker安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce
vi /etc/docker/daemon.json
{
"bip":"172.18.6.1/24",
"registry-mirrors":["https://0wzvqt6n.mirror.aliyuncs.com"],
"insecure-registries":["192.168.244.10:5000"]
}
systemctl daemon-reload
systemctl restart docker
2.docker-compose安装
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3.docker仓库服务
docker login -u 111@qq.com aaa-docker.pkg.coding.net
4.docker挂载目录约定
数据目录:/docker-data
日志目录:/docker-log
三、项目环境搭建
1.zookeeper搭建
docker run -d -p 2181:2181 -v /home/zookeeper/data/:/data/ --name=zookeeper --privileged zookeeper:3.4.9
2.redis搭建
docker run -d --name redis -p 6379:6379 redis --requirepass "123456"
3.mysql主从搭建
a、创建mysql主从库配置目录
mkdir -p /docker-data/mysql/master/conf
mkdir -p /docker-data/mysql/slave/conf
b、在/docker-data/mysql/master/conf下,创建my.cnf配置文件
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小写不敏感
lower_case_table_names=1
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能(关键)
log-bin=mysql-bin
c、在/docker-data/mysql/slave/conf下,创建my.cnf配置文件
[client]
port=3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 配置大小写不敏感
lower_case_table_names=1
## 同一局域网内注意要唯一
server-id=101
d、使用docker-compose来管理mysql主从库
vi docker-compose.yaml
version: '3'
services:
mysql-slave:
image: mysql:5.7
depends_on:
- mysql-master
links:
- mysql-master
volumes:
- /docker-data/mysql/slave/data:/var/lib/mysql
- /docker-data/mysql/slave/conf:/etc/mysql
- /docker-data/mysql/slave/log:/var/log/mysql
ports:
- "3308:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
container_name: mysql-slave
mysql-master:
image: mysql:5.7
volumes:
- /docker-data/mysql/master/data:/var/lib/mysql
- /docker-data/mysql/master/conf:/etc/mysql
- /docker-data/mysql/master/log:/var/log/mysql
ports:
- "3307:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
container_name: mysql-master
e、启动compose来启动mysql
docker-compose up -d
f、数据库配置,进入容器连接主库并创建数据同步用户
mysql -uroot -proot
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
SHOW MASTER STATUS ;
g、从数据库配置,连接从库配置从库同步连接(指定连接的ip/port/user/passwd以及上图中show master status命令得到的file和position值)
CHANGE MASTER TO MASTER_HOST='192.168.42.101',MASTER_PORT=3307,MASTER_USER='slave',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=617;
#启动同步进程
START SLAVE;
h、测试结果状态
SHOW PROCESSLIST;
4.mongodb搭建
docker run -d --name mongo -p 27017:27017 -v /docker-data/mongo:/data/db mongo
提示:未完待续
共有条评论 网友评论