linux安装docker
1.安装gcc相关
yum install gcc -y
yum install gcc-c++ -y
2.安装工具包
#安装工具包
yum -y install yum-utils
#配置阿里云镜像下载地址
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.重建一下yum安装的索引
yum makecache fast
4.安装docker的引擎
yum -y install docker-ce docker-ce-cli containerd.io
5.启动docker
systemctl start docker
6.查看docker是否启动
ps -ef | grep docker
7.测试
docker version
8运行hello world
docker run hello-world
9.卸载
#停止docker
systemctl stop docker
#移除镜像地址
yum remove docker-ce docker-ce-cli containerd.io
#删除docker依赖文件
rm -rf /var/lib/docker
#删除docker容器
rm -rf /var/lib/containerd
docker安装常用软件
tomcat
安装jdk
yum -y list java*
yum -y install java-1.8.0-openjdk*
(安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64)
使用tomcat
docker run --name=mytomcat -d -p 8080:8080 tomcat:8.0.35
mysql
普通使用mysql
#拉镜像
docker pull mysql:5.7
#执行
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
企业使用mysql
#创建文件夹 zzyyuse
cd /
mkdir zzyyuse
#执行 挂容器卷 好处,数据不会丢失
docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
#修改编码->创建my.conf文件
cd /zzyyuse/mysql/conf
vim my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
重启mysql
docker restart 容器id
进入容器
docker exec -it 12c428025622 /bin/bash
登录mysql
mysql -uroot -p123456
查看mysql编码
show variables like 'character%';
redis
1.创建redis容器卷放置的文件夹
mkdir -p /app/redis
2.将一个redis.conf文件模板拷贝进/app/redis目录
3.修改redis.conf
#一 可选
requirepass 123
#二 允许外地连接
bind 0.0.0.0
#其三 与docker run -d 参数冲突导致Redis一直启动
daemonize no
#受保护的 no
protected-mode no
4.开始redis
docker run -p 6379:6379 --name=redis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf
5.修改redis.conf测试配置文件是否生效
6.重启
docker restart 容器id
docker配置mysql主从复制集群
1.新建一个主机
#运行一个docker容器
docker run -d -p 3307:3306 --privileged=true -v /master/mysql/log:/var/log/mysql -v /master/mysql/data:/var/lib/mysql -v /master/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysqlmaster mysql:5.7
#修改编码->创建my.conf文件
cd /master/mysql/conf
vi my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
## 设置server_id,同一局域网中需要唯一
server_id=101
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间,默认值为0,表示不自动清理
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
重启mysql
docker restart 容器id
登录master
docker exec -it 容器id /bin/bash
mysql -uroot -p123456
创建同步用户
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';
2.新建一个从服务器
#运行一个docker容器
docker run -d -p 3308:3306 --privileged=true -v /slave/mysql/log:/var/log/mysql -v /slave/mysql/data:/var/lib/mysql -v /slave/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name=mysqlslave mysql:5.7
#修改编码->创建my.conf文件
cd /slave/mysql/conf
vi my.cnf
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-slave1-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间,默认值为0,表示不自动清理
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
##如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有supper权限的用户除外)
read_only=1
重启mysql
docker restart 容器id
3.在主数据库中查看主从状态
docker exec -it 0ded753641bf /bin/bash
mysql -uroot -p123456
show master status;
4.进入slave容器
docker exec -it 0ded753641bf /bin/bash
mysql -uroot -p123456
show master status;
5.在lave数据库配置主从复制
#第一步
change master to master_host='宿主机ip',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000001',master_log_pos=617,master_connect_retry=30;
#第二步 在从数据库查看主从同步状态
show slave status \G;
#第三步 在从数据库开启主从同步
start slave;
测试:
主机新建数据库,创建表,插数据,从机读
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)