Docker笔记

Docker笔记

一、安装Docker (基于Centos)

  • 卸载历史版本Docker

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  • 设置Docker仓库

    • 官方地址
    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    • 阿里云
    sudo yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安装 Docker

    • 安装默认最新版本
    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    • 安装指定版本
    sudo yum install docker-ce-[VERSION_STRING] docker-ce-cli-[VERSION_STRING] containerd.io docker-compose-plugin-[VERSION_STRING]
    
  • 启动Docker

    sudo systemctl start docker
    
  • 设置开机自动启动

    sudo systemctl enable docker
    
  • 设置Docker镜像加速【阿里云镜像加速】

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://nwmgbucp.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

二、Docker常用命令

  1. docker 镜像管理

    1. 搜索镜像

      docker search [镜像名称]
      
    2. 拉取镜像

      docker pull [镜像名称]
      
  2. docker容器管理

    1. 创建并启动容器

      docker run -d --name [容器名称]  -p 宿主机器端口:容器端口  -v 宿主机目录:容器内部目录  [镜像ID或镜像名称]
      
      #eg 创建一个redis容器
      docker run -d --name redis -p 6379:6379 -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
      -v /mydata/redis/data:/data  redis-server /etc/redis/redis.conf  redis
      

      docker run 参数介绍

      -d : 让容器后台运行

      -P: 随机端口映射

      -p: 指定宿主机与容器的端口映射

      -v: 设置容器的目录【文件】映射

      -e: 设置环境变量

      –name:为容器设置名称

      –net: 设置容器的网络

    2. 创建容器【不启动】

      docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
      
    3. 启动容器【容器已存在】

      docker start [容器ID或容器名称]
      
    4. 停止容器

      docker stop [容器ID或容器名称]
      
    5. 更改容器

      docker update [容器ID或容器名称]
      #eg
      docker update redis --restart=always
      
    6. 查看容器日志

      docker logs [容器ID或容器名称]
      #eg 实时查看logs
      docker logs -f redis
      
    7. 进入容器内部

      #eg 进入容器内部的bash
      docker exec -it [容器ID或容器名称] /bin/bash
      

三、Docker安装并配置MySQL5.7 主从服务

  • 拉取镜像
docker pull mysql:5.7
  • docker 安装mysql 主节点
docker run -d -p 3306:3306   -v /mydata/mysql/conf:/etc/mysql/conf.d    -v /mydata/mysql/data:/var/lib/mysql  -v /mydata/mysql/logs:logs  -e MYSQL_ROOT_PASSWORD=123456 --name  mysql-master mysql:5.7 
  • docker 安装mysql 从节点
docker run -d -p 3307:3306   -v /mydata/mysql2/conf:/etc/mysql/conf.d    -v /mydata/mysql2/data:/var/lib/mysql   -v /mydata/mysql2/logs:logs  -e MYSQL_ROOT_PASSWORD=123456 --name  mysql-slave mysql:5.7 

配置MySQL主服务配置

vi /mydata/mysql/conf/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4 
    
[mysqld]
#允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
default-time_zone = '+8:00'
    
#开启二进制日志
log-bin=mysql-bin
#设置服务id,不能重复
server-id=1 
#作为从节点的时候,有数据库写入操作时也要更新二进制文件
log-slave-updates=1
#开启gtid模式
gtid-mode=on
#强制gtid一致性,开启后对特定的create table不被支持
enforce-gtid-consistency = on

#设置自增ID
auto_increment_increment=2
auto_increment_offset=1
#每次写入立即同步进磁盘
sync_binlog=1
#保证二进制日志和innodb储存引擎数据保持同步
innodb_support_xa=1
#设置binlog格式
binlog_format=mixed

#同步数据库
#binlog-do-db=
    
#屏蔽系统库同步 
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema 
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

配置MySQL从服务器配置

vi /mydata/mysql2/conf/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4 
    
[mysqld]
#允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
default-time_zone = '+8:00'
    
#开启二进制日志
log-bin=mysql-bin
#设置服务id,不能重复
server-id=2
#作为从节点的时候,有数据库写入操作时也要更新二进制文件
log-slave-updates=1
#开启gtid模式
gtid-mode=on
#强制gtid一致性,开启后对特定的create table不被支持
enforce-gtid-consistency = on

#设置自增ID
auto_increment_increment=2
auto_increment_offset=2
#每次写入立即同步进磁盘
sync_binlog=1
#保证二进制日志和innodb储存引擎数据保持同步
innodb_support_xa=1
#设置binlog格式
binlog_format=mixed

#同步数据库
#binlog-do-db=
    
#屏蔽系统库同步 
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema 
binlog-ignore-db=performance_schema
binlog-ignore-db=sys

  • MySQL 主服务配置
# 创建用户
create user 'slave'@'%' identified  WITH mysql_native_password BY  'slave';

# 授予权限
GRANT REPLICATION SLAVE ON *.*  TO 'slave'@'%';

flush PRIVILEGES;

#查看主库的当前Binlog日记文件及位置
 show master status;
 # 如果此处为空,请检查配置文件是否配置log-bin
  • MYSQL从服务器配置
change master to master_host='服务器IP',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos='154';

配置双主双从根据相应的MySQL配置在相应服务上根据图上语句设置主服务器相应配置

  • docker停止并删除所有MySQL镜像
docker ps -a|grep mysql | awk ' {print $1}' | xargs docker stop && docker ps -a |grep mysql  | awk ' {print $1}' | xargs docker rm
  • docke删除所有镜像
docker ps -a |grep mysql  | awk ' {print $1}' | xargs docker rm

三、Docker安装Redis

  • 拉取镜像

    docker pull redis
    
  • 配置Redis数据目录以及配置文件

    mkdir -p /mydata/redis/{conf,data}
    
    vim /mydata/redis/conf/redis.conf
    
    # 设置Redis持久化
    appendonly yes
    # 设置redis密码
    requirepass 1234
    
    
  • 安装Redis

    docker run -p 6379:6379 --name redis -v /mydata/redis/redis.conf:/etc/redis/redis.conf  -v /mydata/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值