当前位置:首页 > 文章列表 > 数据库 > Redis > 如何在Docker中安装MySQL和Redis镜像?

如何在Docker中安装MySQL和Redis镜像?

来源:亿速云 2023-05-08 11:46:37 0浏览 收藏

学习数据库要努力,但是不要急!今天的这篇文章《如何在Docker中安装MySQL和Redis镜像?》将会介绍到等等知识点,如果你想深入学习数据库,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

    docker安装mysql、redis镜像

    docker镜像商店:官方镜像商店

    redis安装下载

    下载镜像:

    如何在Docker中安装MySQL和Redis镜像?

    如何在Docker中安装MySQL和Redis镜像?

    可直接默认下载最新镜像,也可以指定版本下载【注意,版本差异不大的软件可以直接下载最新版本,差异大的,例如java,mysql等,最好指定熟悉的版本进行下载

    docker pull redis

    启动镜像:

    docker run --name=redis -d --restart=always -p 6379:6379 redis
    • --name:别名

    • -d:后台运行,镜像不会随窗口关闭而关闭

    • --restart=always:随docker启动而自启 可以进行后配置:docker update --restart=always [容器名称|id]

    • -p:6379[主机端口]:6379[映射端口],如果有版本号,应该带上版本号redis:6.2.6

    挂载外部文件启动:

    提前创建好文件夹和文件,redis.conf如果没有特别的配置,可以参考(测试环境,生产环境换成本地,关闭密码即可):

    如何在Docker中安装MySQL和Redis镜像?

    #redis使用自定义配置文件启动
     
    docker run -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    -v /mydata/redis/data:/data \
    -d --name redis \
    --restart=always \
    -p 6379:6379 \
    redis:latest  redis-server /etc/redis/redis.conf
     
    #最后这一句代表自启动方式,redis启动默认不加载此处配置
    redis-server /etc/redis/redis.conf

    mysql安装下载

    镜像参考redis直接下载对应版本即可。

    -v:配置挂载,冒号左边为容器内部想要挂载出去的配置路径,右边为挂载的实际路径

    例如:mysql,挂载日志,数据,配置等信息到外部

    docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7

    修改配置文件 my.cnf

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    lower_case_table_names=1

    最后说一下文件外部挂载的优缺点:

    • 优点:修改配置方便,不用每次都进入容器内部

    • 缺点:外部挂载方式镜像将不可以打包传递

    docker安装使用及用docker安装mysql,Redis,nacos

    安装

    卸载之前的docket

    sudo yum remove docker \
                       docker-client \
                       docker-client-latest \
                       docker-common \
                       docker-latest \
                       docker-latest-logrotate \
                       docker-logrotate \
                       docker-engine
    sudo yum install -y yum-utils  //设置存储库

    设置仓库地址,默认国外,也可以设置阿里云的

    sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    yum-config-manager \
        --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    安装docket引擎等组件

    sudo yum install docker-ce docker-ce-cli containerd.io

    启动docket

    sudo systemctl start docker

    配置加速镜像

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json 
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    docket常用命令

    systemctl stop docker //关闭docker
    systemctl restart docker //重启docker
    systemctl status docker  //查看docker状态
    systemctl enable docker  //设置docker开机自启动
    
    docker images  //查看自己服务器的镜像列表
    docker search 镜像名  //搜索指定镜像
    docker search --filter=STARS=9000 mysql  //搜索 STARS >9000的 mysql 镜像
    docker pull 镜像名 //拉取docker仓库里的镜像
    docker pull 镜像名:tag  //拉取docker仓库里指定版本的镜像,具体版本号需要到镜像官网查看(https://hub.docker.com/search?type=image)
    docker pull mysql 5.7.30 //拉取5.7.30的mysql
    docker run 镜像名  //运行镜像
    docker run 镜像名:Tag  //运行指定版本的镜像
    
    docker rmi -f 镜像名/镜像ID //删除一个镜像,镜像没有被别的镜像使用才可以删除
    docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID  //删除多个镜像,空格隔开
    docker rmi -f $(docker images -aq) //删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
    docker image rm 镜像名称/镜像ID  //强制删除镜像
    
    docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
    docker save tomcat -o /myimg.tar //保存Tomcat到myimg.tar里
    docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
    
    docker ps  //查看正在运行容器列表
    docker ps -a  //查看所有容器 -----包含正在运行 和已停止的
    docker exec -it 容器名 路径//进入容器 里的路径
    #删除一个容器
    docker rm -f 容器名/容器ID
    #删除多个容器 空格隔开要删除的容器名或容器ID
    docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
    #删除全部容器
    docker rm -f $(docker ps -aq)
    docker start 容器ID/容器名  //启动容器
    docker stop 容器ID/容器名    //停止容器
    docker restart 容器ID/容器名    //重启容器
    docker kill 容器ID/容器名  //kill 容器
    
    docker cp 容器ID/名称: 容器内路径  容器外路径        //容器内拷文件到外面
    docker cp 容器外路径 容器ID/名称: 容器内路径        //容器外拷文件到容器内
    docker run -it -d --name 容器别名 镜像名 --restart=always   //容器随着docker启动而启动
    docker update --restart=always 容器Id 或者 容器名 //修改容器启动配置(设置自启动)
    docker rename 容器ID/容器名 新容器名  //更改容器名
    
    docker logs container-id    //查看容器日志
    sudo docker info | grep "Docker Root Dir"  //查看docker工作目录
    du -hs /var/lib/docker/     //查看docker磁盘占用总体情况
    docker system df    //查看Docker的磁盘使用具体情况
    docker rm `docker ps -a | grep Exited | awk '{print $1}'`  //#  删除异常停止的容器
    docker rmi -f  `docker images | grep '' | awk '{print $3}'` //删除名称或标签为none的镜像

    使用docker安装MySQL

    sudo docker pull mysql:5.7.39  //拉取mysql镜像到本地
    # --name指定容器名字 -v目录挂载 -p指定端口映射(宿主机端口:容器端口)  -e设置mysql参数 -d后台运行
    sudo docker run --name mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/mysql-files:/var/lib/mysql-files/  -e MYSQL_ROOT_PASSWORD=root  -p 3306:3306 -d mysql:5.7
    docker exec -it 容器名称|容器id bin/bash  //进入容器里
    exit  //退出容器
     -v /usr/local/mysql/mysql-files:/var/lib/mysql-files/

    验证:用连接工具测试能不能连接成功,或window下cmd测试

    ssh -v -h 3306 IP

    使用docker安装Redis

    docker pull redis:6.0.10  //拉取镜像

    创建配置文件,docker-Redis里面默认没有配置文件,在宿主机创建并挂载到容器里

    mkdir /home/redis
    cd /home/redis
    vi redis.conf

    添加如下内容

    bind 0.0.0.0  开启远程权限
    appendonly yes  开启aof持久化

    启动Redis容器并挂载文件

    docker run --name redis  -v /home/redis/data:/data  -v /home/redis/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:6379 -d redis:6.0.10  redis-server /usr/local/etc/redis/redis.conf
    docker exec -it redis redis-cli //进入Redis客户端

    安装nacos

    拉取镜像

    docker pull nacos/nacos-server

    查看镜像

    docker images

    启动容器

    docker run --env MODE=standalone --name mynacos -d -p 8848:8848 docker.io/nacos/nacos-server

    查看启动日志

    docker logs -f mynacos

    日志中显示nacos服务地址为:

    http://172.18.0.2:8848/nacos/index.html

    默认账号密码都是nacos

    进入nacos容器查看配置

    docker ps
    docker exec -it 容器名或ID /bin/bash
    ls
    cd conf/
    ls

    修改启动配置文件

    进入

    docker exec -it nacos /bin/bash

    进入启动脚本

    cd /home/nacos/bin
    vim docker-startup.sh

    文中关于mysql,docker,redis的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何在Docker中安装MySQL和Redis镜像?》文章吧,也可关注golang学习网公众号了解相关技术文章。

    版本声明
    本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
    MySQL中的UNION操作符语法是什么?MySQL中的UNION操作符语法是什么?
    上一篇
    MySQL中的UNION操作符语法是什么?
    怎么删除MySQL的注册表
    下一篇
    怎么删除MySQL的注册表
    查看更多
    最新文章
    查看更多
    课程推荐
    • 前端进阶之JavaScript设计模式
      前端进阶之JavaScript设计模式
      设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
      542次学习
    • GO语言核心编程课程
      GO语言核心编程课程
      本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
      508次学习
    • 简单聊聊mysql8与网络通信
      简单聊聊mysql8与网络通信
      如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
      497次学习
    • JavaScript正则表达式基础与实战
      JavaScript正则表达式基础与实战
      在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
      487次学习
    • 从零制作响应式网站—Grid布局
      从零制作响应式网站—Grid布局
      本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
      484次学习
    查看更多
    AI推荐
    • 谱乐AI:青岛艾夫斯科技的多模型AI音乐生成工具
      谱乐AI
      谱乐AI是由青岛艾夫斯科技有限公司开发的AI音乐生成工具,采用Suno和Udio模型,支持多种音乐风格的创作。访问https://yourmusic.fun/,体验智能作曲与编曲,个性化定制音乐,提升创作效率。
      2次使用
    • Vozo AI:超真实AI视频换脸工具,提升创意内容制作
      Vozo AI
      探索Vozo AI,一款功能强大的在线AI视频换脸工具,支持跨性别、年龄和肤色换脸,适用于广告本地化、电影制作和创意内容创作,提升您的视频制作效率和效果。
      2次使用
    • AIGAZOU:免费AI图像生成工具,简洁高效,支持中文
      AIGAZOU-AI图像生成
      AIGAZOU是一款先进的免费AI图像生成工具,无需登录即可使用,支持中文提示词,生成高清图像。适用于设计、内容创作、商业和艺术领域,提供自动提示词、专家模式等多种功能。
      2次使用
    • Raphael AI:Flux.1 Dev支持的免费AI图像生成器
      Raphael AI
      探索Raphael AI,一款由Flux.1 Dev支持的免费AI图像生成器,无需登录即可无限生成高质量图像。支持多种风格,快速生成,保护隐私,适用于艺术创作、商业设计等多种场景。
      2次使用
    • Canva可画AI生图:智能图片生成新选择
      Canva可画AI生图
      Canva可画AI生图利用先进AI技术,根据用户输入的文字描述生成高质量图片和插画。适用于设计师、创业者、自由职业者和市场营销人员,提供便捷、高效、多样化的视觉素材生成服务,满足不同需求。
      1次使用
    微信登录更方便
    • 密码登录
    • 注册账号
    登录即同意 用户协议隐私政策
    返回登录
    • 重置密码