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;

测试:

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

docker安装常用软件的更多相关文章

  1. 基于Docker安装常用软件

    基于Docker安装常用软件 本实验介绍如何基于Docker安装常用的软件,具体包括: Ubuntu Cetnos Nginx Node.js PHP MySQL Tomcat Redis Mongo ...

  2. 安装docker及使用docker安装其他软件(手动挂载数据卷)

    中秋明月,豪门有,贫家也有,极慰人心 Linux安装docker 可以参考官方的安装文档 centos安装docker: https://docs.docker.com/engine/install/ ...

  3. linux centos7 安装常用软件java,node,mysql,Seafile

    linux centos7 安装常用软件java,node,mysql,Seafile 安装压缩解压缩软件 yum install -y unzip zip 安装git yum install -y ...

  4. Deepin安装常用软件

    Deepin安装常用软件 安装git sudo apt-get install git sudo是Debian系列以管理员运行的前缀 卸载软件 sudo apt-get remove package_ ...

  5. linux安装常用软件和查询基本信息

                                                                          linux安装常用软件和查询基本信息 1. 安装常用软件 [ ...

  6. docker安装各类软件

    安装Docker Docker 要求 CentOS 系统的内核版本高于 3.10 , uname -r 命令查看你当前的内核版本 1 安装一些必要的系统工具: sudo yum install -y ...

  7. Ubuntu使用snap安装常用软件

    1,snap简介 什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立.所以使用snap包的好处就是它解决了应用程序之间的依赖问题 ...

  8. win10创建Ubuntu16.04子系统,安装常用软件以及图形界面(包括win10远程桌面连接Ubuntu)

    一.开启win10子系统 [ Windows Subsystem for Linux(WSL)] 二.基本配置 三.安装常用的软件 安装配置zsh 使用 bash 客户端软件 cmder(其实是win ...

  9. docker安装Tomcat软件,部署项目

    1 搜索tomcat镜像 $ sudo docker search tomcat NAME DESCRIPTION STARS OFFICIAL AUTOMATED tomcat Apache Tom ...

  10. Docker笔记(二) 安装常用软件

    常用环境安装 这里收集一些常用环境的安装步骤,可直接复制进行使用,节省安装时间,后续会随时补充 安装MySQL5.7.32 下载mysql5.7.32的镜像 ( 记得下载镜像要先确保镜像仓库中存在这个 ...

随机推荐

  1. Delphi 多进程共享内存的简单封装单元

    该单元转自武稀松的博客 稍作修改,使其支持Delphi7 { 共享内存封装. 封装成了MemoryStream的形式. 用法如下: var ms : TShareMemStream; ms := TS ...

  2. HTML中javascript的<script>标签使用方法详解

    只要一提到把JavaScript放到网页中,就不得不涉及Web的核心语言--HTML.在当初开发JavaScript的时候,Netscape要解决的一个重要问题就是如何做到让JavaScript既能与 ...

  3. css样式 div垂直水平居中对齐

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. MySQL中的sql优化

    目标: 掌握SQL调优的原则 掌握SQL调优的基本逻辑 掌握优秀SQL的编写方案 掌握何为慢SQL以及检测方案 SQL优化原则 1.减少数据量(表中数据太多可以分表,例如超过500万数据  双11一个 ...

  5. OC基础 - iOS在枚举赋值时为何采用左移格式

    枚举值 1 - iOS 枚举成员在赋值时往往是如下模式:左移对齐 2 - 为何这般设计 ?其一提高了阅读性:其二便于计算,能够更好的表达枚举值的含义 1 #import "ViewContr ...

  6. 【git】2.4 撤销操作

    资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C ...

  7. centos7 启动报错 Failed to mount /sysroot

    centos7 启动报错 Failed to mount /sysroot   场景: centos7系统异常关闭后,启动后进入不了图形化界面 解决方法: 1. 定位报错原因 进入单用户模式后执行下面 ...

  8. kali中MulVAL的安装与配置

    我的Kali版本 配置JAVA环境 Kali 2021.3自带openjdk 11的环境 # 验证openjdk11 java --version javac --version 能输出版本号则说明环 ...

  9. asp.net core 浏览器向服务端传递对象或对象数组参数服务端接收方式

    日常开发中我们经常会在客户端向服务器端传递参数,下面以asp.net core为例 专门分享传递对象或对象数组方法 一.键值对专递对象 以下是一个表单,现在需求是将以下 表单 所有input元素以独享 ...

  10. Ubuntu网络重置

    Ubuntu网络重置 >重置网络 sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager ...