#查看内核
➜ ~ uname -r
4.15.0-96-generic # 要求3.0以上
#查看Centos
➜ ~ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
安装
1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.需要的安装包
yum install -y yum-utils
3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#默认是从国外的,不推荐
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum软件包索引
yum makecache fast
5.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
6.使用docker version查看是否按照成功
docker version
#开始service
service docker start
#开机自动启动docker
systemctl enable docker
#启动docker
systemctl start docker
#重启dokcer
systemctl restart docker
#验证
docker version
1、安装Run this command to download the latest version of Docker Compose 修改自己需要的版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果github dockercompose速度较慢可以使用下面这个,效果一样
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、赋权Apply executable permissions to the binary: sudo chmod +x /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3、Optionally, install command completion for the bash and zsh shell.
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4、测试(查看版本)Test the installation
docker-compose --version
docker pull mysql:5.7.35
version: '3.0'
services:
#主数据库
master_mysql:
image: mysql:5.7.35
restart: always
container_name: master_mysql
privileged: true
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
volumes:
- /opt/master_mysql/data:/var/lib/mysql
- /opt/master_mysql/conf/my.cnf:/etc/mysql/my.cnf
#从数据库
slave_mysql:
image: mysql:5.7.35
restart: always
container_name: slave_mysql
privileged: true
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
volumes:
- /opt/slave_mysql/data:/var/lib/mysql
- /opt/slave_mysql/conf/my.cnf:/etc/mysql/my.cnf
mkdir -p /opt/master_mysql/data
mkdir -p /opt/master_mysql/conf
mkdir -p /opt/slave_mysql/data
mkdir -p /opt/slave_mysql/conf
可以直接将下面的配置直接写里面,也可以直接创建为空文件
vim /opt/master_mysql/conf/my.cnf
vim /opt/slave_mysql/conf/my.cnf
docker-compose -f docker-compose-mysql.yml up -d
修改容器也可以,也可以直接修改你挂载目录里面的my.cnf文件都可行!
apt-get update
apt-get install vim
docker exec -it 37111bb4ea57/bin/bash
- vim /etc/mysql/my.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
-mysql7版本
grant replication slave on *.* to 'slave'@'%' identified by 'root';
-mysql8版本
CREATE USER 'slave'@'%' IDENTIFIED BY 'root';--为从库服务器 设置用户名和密码(表明从服务器的ip可以使%,账号为slave 密码root
grant replication slave, replication client on *.* to 'slave'@'%';--设置权限
flush privileges;--权限生效
show grants for 'slave'@'%';
apt-get update
apt-get install vim
docker exec -it ccb28a2e2f90/bin/bash
- vim /etc/mysql/my.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=200
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
## 设置为只读,该项如果不设置,表示slave可读可写
read_only= 1
--通过该命令可以查看master数据库当前正在使用的二进制日志及当前执行二进制日志位置
show master status;
记住File和Position,后面Slave库会在这个文件这个位置进行同步数据。此时一定不要操作Master库,否则将会引起Master状态的变化,File和Position字段也将会进行变化。
MASTER_HOST 主库IP
MASTER_PORT 主库端口
MASTER_USER 刚才创建的同步账号的用户名
MASTER_PASSWORD 刚才创建的同步账号的密码
MASTER_LOG_FILE:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
MASTER_LOG_POS:从哪个 Position 开始读,即上文中提到的 Position 字段的值
change master to
master_host='192.168.7.231',
master_user='slave',
master_password='root',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=885;
-- 顺便提供下其它命令 stop slave 停止slave。reset slave重启slave。 reset master重启master。
start slave;
show slave status;