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;

测试:

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

最新文章

  1. String StringBuffer StringBuilder
  2. 微信 小程序 canvas
  3. 6/14 sprint2 看板和燃尽图的更新
  4. [Android Pro] 关于Android的HTTP客户端的小秘密
  5. Javascript备忘
  6. vs中附加IIS进程的调试方法
  7. 关于for,while与do while
  8. Iphone5s 通话质量差 问题解决
  9. 安装php-posix
  10. 缺少编译器要求的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor” 解决方案
  11. VSPackge插件系列:简单文本编辑器的实现
  12. JavaScript 应用开发 #4:切换任务的完成状态
  13. 201521123034《Java程序设计》第七周学习总结
  14. Django Cookie 和 Sessions 应用
  15. django xdmin使用
  16. Mac OS X下64位汇编与Linux下64位汇编的一些不同
  17. RabbitMQ消息队列
  18. windows server 2012/2016 设置多用户远程桌面(转载)
  19. PTA——黑洞数
  20. python摸爬滚打之day06----小数据池、编码解码

热门文章

  1. fastjson场景
  2. 查找大文件-清理linux磁盘
  3. python之路3:文件操作和函数基础
  4. 提交from表单,method与浏览器请求显示不一致
  5. tcpdump: error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
  6. 解决vscode中,powershell中conda activate无效--更改vscode默认的shell为anaconda shell
  7. 邮件合并 :处理ACCESS中批量查询语句的运行
  8. 04jsp(1)
  9. 【广告】UEOI 招聘减章
  10. Python下使用argparse模块的脚本参数配置