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;

测试:

主机新建数据库,创建表,插数据,从机读