• 华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)


    华为云云耀云服务器L实例评测|企业项目最佳实践系列:

    华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一)
    华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二)
    华为云云耀云服务器L实例评测|企业项目最佳实践之华为云耀云服务器L实例介绍(三)
    华为云云耀云服务器L实例评测|企业项目最佳实践之云耀云服务器L实例购买 (四)
    华为云云耀云服务器L实例评测|企业项目最佳实践之评测用例(五)
    华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)
    华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
    华为云云耀云服务器L实例评测|企业项目最佳实践之私有库搭建verdaccio(八)
    华为云云耀云服务器L实例评测|企业项目最佳实践之启动宠物预约项目(九)
    华为云云耀云服务器L实例评测|企业项目最佳实践之计划任务与Queue队列实践 (十)
    华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)
    华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)


    八、华为云耀云服务器L实例docker、docker-compose安装及部署MySQL、Redis应用:

    随着云原生、容器化、微服务、K8S等技术的发展,容器 docker 也逐渐在企业团队实践中大量的使用。它可以提供了一套标准化的解决方案,极大地提升了部署、发布、运维的效率。

    如下为目前公司某个业务线集群使用的K8S云服务器集群:

    在这里插入图片描述
    K8S相关部署文件:
    在这里插入图片描述


    1. 什么是容器:

    容器是操作系统内核自带能力,是基于 Linux内核实现的轻量级高性能資源隔离机制Docker是容器技术之一,核心在于实现应用与运行环境整体打包以及打包格式统,Docker通过 Linux Container技术的包装将App变成种标准化的、可移植的、自管理的组件。

    在这里插入图片描述

    容器关键价值:
    ①. 快速交付和部署:一站式部署/运维容器应用,一键式滚动升级。
    ②. 提升资源利用率:更细粒度地划分资源,提高资源利用率。
    ③. 保障业务高可用:秒级弹性扩容,快速响应并发高峰。
    ④. 复杂系统管理简单:单一重型应用解耦拆分为多个轻量模块,每个模块升级伸缩更加灵活,轻松应对市场变化。

    2. Docker的典型应用场景:

    在这里插入图片描述


    3. 安装docker:

    查看docker是没有默认安装的,我们这里直接采用官方给出的命令来进行docker的安装,可以看到采用的也是华为云的网络地址,安装的速度非常的快。

    # 安装docker程序
    sudo apt-get install -y docker.io
    
    • 1
    • 2

    在这里插入图片描述

    docker安装完后,可以查看docker版本以及使用docker简单的命令运行是否正常。

    # 查看docker的版本
    docker -v
    # 查看当前docker运行的容器
    docker ps
    # 查看当前docker下载的镜像image
    docker images
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    4. docker搭建MySQL 5.7容器:

    在这里插入图片描述

    # 拉取mysql镜像
    docker pull mysql:5.7
    # 启动一个mysql容器
    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
    # 查看正在运行的容器
    docker ps
    # 查看所有的镜像
    docker images
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述


    5. docker搭建Redis容器:

    在这里插入图片描述

    # 拉取redis镜像
    docker pull redis
    # 启动一个redis容器
    docker run --name redis-server -p 6379:6379 -d redis
    # 查看正在运行的容器
    docker ps
    # 查看所有的镜像
    docker images
    # 进入redis容器
    docker exec -it 容器id /bin/bash
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述


    6. 安装docker-compose:

    docker-compose是一个用来定义个运行复杂应用的docker工具,使用该工具可以轻松、高效的管理容器,通过一个配置文件可以管理多个docker容器。

    使用 docker Compose 可以轻松、高效的管理容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务,非常适合组合使用多个容器进行开发的场景。

    在这里插入图片描述

    拉取github对应的程序,很多时候,网络超时,如果您没有网络的问题,可以尝试以下方案安装:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    找到其它的方案,使用 pip来安装docker-compose。

    # pip安装docker-compose
    sudo pip install docker-compose
    # 查看版本
    docker-compose -v
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述


    7. docker-compose搭建MySQL、Redis容器:

    .env文件:

    MYSQL_DATABASE=huawei
    MYSQL_USER=root
    MYSQL_PASSWORD=123456
    MYSQL_ROOT_PASSWORD=root
    MYSQL_DIR=./mysql
    MYSQL_PORT=3306
    MYSQL_VERSION=5.7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    docker-compose.yml文件:

    version: '3'
    
    networks:
      node-network:
        driver: bridge
    
    services:
      ### Reids Container #######################################
      redis:
        image: redis
        container_name: redis-docker
        ports:
          - 6379:6379
        environment:
          TZ: Asia/Shanghai
        networks:
          - node-network
    
      ### mysql Container ###########################
      mysql:
        restart: always
        build:
          context: ./mysql
          args:
            - MYSQL_VERSION=${MYSQL_VERSION}
        # 指定容器的名称
        container_name: mysql-docker
        # 使container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限
        # 有可能数据卷可能挂载不了,启动不起
        privileged: true
        command: --innodb-use-native-aio=0
        environment:
          MYSQL_DATABASE: ${MYSQL_DATABASE}             # 指定一个数据库,在容器启动时创建.
          # 创建一个新用户,这个用户在MYSQL_DATABASE指定的数据库上拥有超级用户权限
          MYSQL_USER: ${MYSQL_USER}
          MYSQL_PASSWORD: ${MYSQL_PASSWORD}
          MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        volumes:
          - "${MYSQL_DIR}/data:/var/lib/mysql"           # 挂载数据目录
          - "${MYSQL_DIR}/logs:/var/lib/mysql-logs"      # 挂载日志目录
        ports:
          # 将容器的3306映射到本地3306,前面是本地端口
          - "${MYSQL_PORT}:3306"
    
    • 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
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    在这里插入图片描述
    销毁容器:在这里插入图片描述

    # 启动MySQL和Redis容器
    docker-compose up -d redis mysql
    # 查看容器
    docker ps
    # 销毁容器
    docker down
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    8. 使用“Navicat Premium”连接MySQL服务器,有两种方案进行连接:

    序号连接方案
    1使用本地先通过SSH的方式连接到华为云耀云服务器L实例服务器,再连接本地localhost的方式连接MySQL服务器。
    2开放服务器外网3306端口,直接使用华为云耀云服务器L实例服务器的IP + port进行连接。

    在这里插入图片描述

    在华为云耀云服务器L实例中的安全组,如下添加规则,开通3306的外网限制规则,在外网即可访问华为云耀云服务器L实例的内部端口。

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


    9. 使用连接Redis服务器:

    Redis Desktop Manager(RDM)是一款用于管理和操作Redis数据库的图形化界面工具。它提供了简单易用的界面,使用户能够方便地执行各种Redis数据库操作,并且支持多个Redis服务器的连接。

    在安全组中,开通6379的端口。
    在这里插入图片描述

    使用IP + 端口连接redis实例。
    在这里插入图片描述

    进行redis的key操作。

    在这里插入图片描述


    10. 小结:

    docker可以在共享相同内核空间的单个主机上运行基于不同 Linux 发行版的容器。例如,在 Ubuntu 服务器上运行 RHEL、CentOS、基于 SUSE 的容器,只有用户空间不同,内核空间相同,可以构建MySQL、Redis、Nginx的容器或集群。

    在这里插入图片描述

    通过对华为云耀云服务器L实例安装docker及docker-compose,再部署MySQL和Redis的容器,并没有发现不满足需求的,安装的过程中,默认自带的华为云源下载的速度非常的快,是值得推荐的。

    在这里插入图片描述

    以下为安装过的软件清单:

    在这里插入图片描述

    以下为软件安装部署整体测试进度:

    在这里插入图片描述

  • 相关阅读:
    Learn OpenGL 07 摄像机
    Vue3中的computed函数详解
    你一定用过htop,但你有看懂每个栏位么?
    揭秘!新手主播如何快速出圈,看拓世法宝分分钟打造百万直播间
    Qt-FFmpeg开发-打开本地摄像头录制视频(7)
    被骂怕了?微软将允许Windows 11用户一键设置默认浏览器
    ZLMediaKit安装配置和推拉流
    手把手教你实现buffer(三)——接口及自动扩容
    Python数据类型底层、推导、生成器、迭代器、装饰器
    空杯心态。
  • 原文地址:https://blog.csdn.net/wanmeijuhao/article/details/133810398