• 环境部署搭建


    一、 服务器

    1.购买一个服务器,使用密钥登录
    在这里插入图片描述
    2.ssh远程连接
    ssh连接的工具很多,这里推荐用的是xshell
    在这里插入图片描述
    在这里插入图片描述
    登录成功,开始配置环境。

    二、docker环境部署

    1、下载docker

    yum install docker
    
    • 1

    在这里插入图片描述

    2、启动docker服务

    service docker start
    chkconfig docker on
    
    • 1
    • 2

    在这里插入图片描述

    3、测试是否安装成功

    docker version
    
    • 1

    在这里插入图片描述

    4、设置国内镜像

    vi  /etc/docker/daemon.json
    
    #添加后
    {
        "registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
        "live-restore": true
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、重新启动docker服务

    systemctl daemon-reload
    service docker restart
    
    • 1
    • 2

    6、 检查是否生效

    docker info
    
    • 1

    在这里插入图片描述

    三、Docker Compose的安装

    1、安装中间件
    下载地址:
    https://github.com/docker/compose/releases/download/1.28.6/docker-compose-Linux-x86_64
    2、导入文件

    cd /usr/local/bin #打开文件夹
    rz #选择本地文件到服务器
    
    • 1
    • 2

    在这里插入图片描述在这里插入图片描述

    3、将可执行权限应用于二进制文件

    sudo chmod +x /usr/bin/docker/docker-compose
    
    • 1

    4、测试是否安装成功

    docker-compose --version
    
    • 1

    在这里插入图片描述

    四、docker常用命令

    拉取docker镜像
    docker pull image_name
    
    查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:
    docker images
    
    删除镜像
    docker rmi docker.io/tomcat:7.0.77-jre7 
    或者 docker rmi b39c68b7af30
    
    查看当前有哪些容器正在运行
    docker ps
    
    查看所有容器
    docker ps -a
    
    启动、停止、重启容器命令:
    docker start container_name/container_id docker stop container_name/container_id docker restart container_name/container_id
    
    后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
    docker attach container_name/container_id
    
    删除容器的命令:
    docker rm container_name/container_id
    
    删除所有停止的容器:
    docker rm $(docker ps -a -q)
    
    查看当前系统Docker信息
    docker info
    
    从Docker hub上下载某个镜像:
    docker pull centos:latest docker pull centos:latest
    
    查找Docker Hub上的nginx镜像
    docker search nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    五、MySQL部署

    1、创建挂载目录

    #创建挂载目录
    mkdir -p /data/mysql/data;
    mkdir -p /data/mysql/conf;
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2、创建yml文件

    vim /data/mysql/docker-compose.yml
    
    • 1
    #填入配置
    version: '3'
    services:
      mysql:
        image: mysql:5.7 #mysql版本
        container_name: mysql
        volumes:
          - /data/mysql/data:/var/lib/mysql
          - /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
        restart: always
        ports:
          - 3306:3306
        environment:
          MYSQL_ROOT_PASSWORD: 123456 #root用户密码
          TZ: Asia/Shanghai
        command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3、创建配置文件
    vim /data/mysql/conf/my.cnf

    [mysqld]
    default-storage-engine=INNODB  # 创建新表时将使用的默认存储引擎
    character-set-server=utf8mb4      # 设置mysql服务端默认字符集
    pid-file        = /var/run/mysqld/mysqld.pid  # pid文件所在目录
    socket          = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字
    datadir         = /var/lib/mysql              # 数据文件存放的目录
    symbolic-links=0
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等!
    
    # 允许最大连接数
    max_connections=200
    
    
    # 同一局域网内注意要唯一
    server-id=3306
    # 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
    #log-bin=mysql-bin
    log-bin=/var/lib/mysql/mysql-bin
    # binlog格式
    # 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
    # 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
    # 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
    binlog_format=ROW
    # FULL:binlog记录每一行的完整变更 MINIMAL:只记录影响后的行
    binlog_row_image=FULL
    # 日志文件大小
    max_binlog_size=100M
    # 定义清除过期日志的时间(这里设置为7)
    expire_logs_days=7
    
    # ================= ↑↑↑ mysql主从同步配置end ↑↑↑ =================
    
    [mysql]
    default-character-set=utf8mb4
    
    [client]
    default-character-set=utf8mb4  # 设置mysql客户端默认字符集
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    4、启动容器

    注意:到对应目录文件下,记得服务器开防火墙

    cd /data/mysql
    docker-compose up -d
    
    • 1
    • 2

    在这里插入图片描述

    Error:3306端口号被占用

    #错误信息
    
    [root@VM-16-2-centos mysql]# docker-compose up -d
    Starting mysql ... 
    Starting mysql ... error
    
    ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint mysql (719971d0ba14ce99914053128e9a8e92a268346e7d86eaa07ebcd9b005ea86a1): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
    
    ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint mysql (719971d0ba14ce99914053128e9a8e92a268346e7d86eaa07ebcd9b005ea86a1): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
    ERROR: Encountered errors while bringing up the project.
    
    # 尝试解决手段,杀死占用对应端口进程
    [root@VM-16-2-centos mysql]#  sudo netstat -apn | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      17082/mysqld        
    unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      
    [root@VM-16-2-centos mysql]# tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      9727/mysqld  
    -bash: tcp: command not found
    [root@VM-16-2-centos mysql]# sudo netstat -apn | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      17082/mysqld        
    unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      
    [root@VM-16-2-centos mysql]# sudo kill -9 17082
    [root@VM-16-2-centos mysql]# sudo netstat -apn | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      6369/mysqld         
    unix  2      [ ]         DGRAM                    13306    566/dbus-daemon      
    
    # 彻底解决手段
    #1、查看mysql的进程PID:  sudo lsof -i :3306
    [root@VM-16-2-centos ~]# sudo lsof -i :3306
    COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    mysqld  6369 mysql   17u  IPv6 3392314      0t0  TCP *:mysql (LISTEN)
    
    #2、 杀死进程PID:  sudo kill 6369
    [root@VM-16-2-centos ~]# sudo kill 6369
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    #docker-compose加载mysql
    [root@VM-16-2-centos mysql]# docker-compose up -d
    Starting mysql ... done
    [root@VM-16-2-centos mysql]# docker-compose up -d
    mysql is up-to-date
    [root@VM-16-2-centos mysql]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    275834062b57        mysql:5.7           "docker-entrypoint..."   20 minutes ago      Up About a minute   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5、navicate测试链接成功

    注意:开启防火墙,3306
    在这里插入图片描述

    创建数据库,编辑连接,只看自己需要的数据库。
    在这里插入图片描述

    在这里插入图片描述

    六、Redis部署

    1、创建挂载目录

    #创建挂载目录
    mkdir -p /data/redis
    
    • 1
    • 2

    2、创建yml文件

    vim /data/redis/docker-compose.yml
    #填入配置
    version: '3'
    services:
      redis:
        image: redis:6.2.6
        container_name: redis
        restart: always
        ports:
          - 6379:6379
        volumes:
          - /data/redis/redis.conf:/etc/redis/redis.conf
          - /data/redis/data:/data
          - /data/redis/logs:/logs
        command: ["redis-server","/etc/redis/redis.conf"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3、创建挂载的配置文件

    vim /data/redis/redis.conf
    
    protected-mode no
    port 6379
    timeout 0
    #rdb配置
    save 900 1
    save 300 10
    save 60 10000
    rdbcompression yes
    dbfilename dump.rdb
    dir /data
    appendonly yes
    appendfsync everysec
    #设置你的redis密码
    requirepass 123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    protected-mode no不加,服务连不上redis的
    4、启动容器

    cd /data/redis
    docker-compose up -d
    #如果需要强制重新构建
    docker-compose up --force-recreate -d
    
    • 1
    • 2
    • 3
    • 4

    防火墙开端口号 6379

    在这里插入图片描述

    5、AnotherRedis测试连接

    注意:开启redis服务

    在这里插入图片描述
    测试成功
    在这里插入图片描述

  • 相关阅读:
    情绪赋能领导力
    LeetCode-684. Redundant Connection [C++][Java]
    .NET 6 基于IDistributedCache实现Redis与MemoryCache的缓存帮助类
    ZZNUOJ_C语言1089:阶乘的最高位(完整代码)
    初始JVM
    ASP.NET Core - 入口文件
    MySQL 定时计划任务 事件的使用
    基于springboot冷链物流信息调度系统毕业设计源码210951
    [论文|实验]HRNet
    title标签和meta标签怎样设置?有什么含义?
  • 原文地址:https://blog.csdn.net/Angeliaz/article/details/133148308