当前位置:

首页 > 编程开发 > Docker如何安装MySQL和Redis镜像?

Docker如何安装MySQL和Redis镜像?

docker安装mysql、redis镜像docker镜像商店:官方镜像商店redis安装下载下载镜像:可直接默认下载最新镜像,也可以指定版本下载【注意,版本差异不大的软件可以直接下载最新版本,差异大的,例如java,mysql等,最好指定熟悉的版本进行下载】dockerpullredis启动镜像:dockerrun--name=redis-d--restart=always-p6379:6379redis--name:别名-d:后台运行,镜像不会随窗口关闭而关闭--restart=always:随doc

    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 <<-'EOF'
    {
      "registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
    }
    EOF
    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
    本文内容来源于互联网,如有侵权请联系删除。
    作者最新文章
    编程开发 Docker
    相关文章 更多
    using namespace 使用中遇到的问题怎么解决
    using namespace 使用中遇到的问题怎么解决

    命名空间的基本概念与常见引入问题在C++等编程语言中,命名空间(namespace)是一种将代码标识符(如变量、函数、类名)封装在特定名称下的机制,其主要目的是避免命名冲突,尤其是在大型项目或使用多个第三方库时。使用“using namespace”指令可以将指定命名空间中的所有名称引入当前作用域,

    c语言函数递归 实操经验总结:这些技巧很实用
    c语言函数递归 实操经验总结:这些技巧很实用

    理解递归的基本原理在C语言中,递归是一种函数调用自身的编程技术。要掌握它,首先需要理解其核心思想:将一个复杂的大问题,分解为一个或几个与原问题相似但规模更小的子问题,直到子问题足够简单,可以直接求解。这个过程通常包含两个关键部分:递归出口和递归体。递归出口定义了问题何时不再继续分解,即最简单、可直接

    c语言函数递归 怎么选?常见方案对比分析
    c语言函数递归 怎么选?常见方案对比分析

    递归函数的基本概念与适用场景在C语言编程中,递归是一种函数调用自身的编程技巧。它并非适用于所有问题,但在处理某些具有自相似结构的问题时,能提供极其清晰和优雅的解决方案。递归的核心思想是将一个大规模问题分解为一个或多个同类型但规模更小的子问题,直到子问题简单到可以直接求解。典型的适用场景包括树形结构的

    Objective-C 内存管理入门:从 alloc 到 dealloc 的生命周期详解
    Objective-C 内存管理入门:从 alloc 到 dealloc 的生命周期详解

    理解内存管理的基石在Objective-C的编程世界中,内存管理是开发者必须掌握的核心技能之一。它直接关系到应用的性能、稳定性与资源利用效率。与一些采用自动垃圾回收机制的语言不同,Objective-C在很长一段时间里,依赖一套基于引用计数的、需要开发者部分介入的管理规则。这套规则的核心思想是明确的

    如何正确使用 dealloc 以避免 iOS 应用中的内存泄漏
    如何正确使用 dealloc 以避免 iOS 应用中的内存泄漏

    理解 dealloc 的角色与时机在 iOS 应用开发中,内存管理是保障应用性能与稳定性的基石。dealloc 方法是 Objective-C 中对象生命周期结束时的关键回调,它标志着对象即将被系统回收内存。正确理解其触发时机至关重要:当一个对象的引用计数降为零时,运行时系统会自动调用该对象的 de

    深入理解 Objective-C 中的 dealloc 方法:内存管理核心机制
    深入理解 Objective-C 中的 dealloc 方法:内存管理核心机制

    内存管理的基石在Objective-C的世界里,内存管理是开发者必须掌握的核心技能之一。作为一门在手动引用计数(MRC)时代诞生的语言,Objective-C要求程序员对对象的生命周期有清晰的认识。dealloc方法正是这一生命周期中至关重要的终点站。它是一个实例方法,当对象的引用计数降为零时,系统

    理解 native2ascii:Java 国际化开发中的字符编码工具
    理解 native2ascii:Java 国际化开发中的字符编码工具

    native2ascii 工具的基本定位在Ja va应用程序的国际化与本地化开发过程中,处理非拉丁字符集是一个常见且关键的环节。Ja va内部使用Unicode字符集来统一表示全球各种语言的文字,但其属性文件(.properties)在历史上要求使用ASCII编码,或者更准确地说,要求非ASCII字

    如何使用 native2ascii 转换中文字符为 Unicode 转义序列
    如何使用 native2ascii 转换中文字符为 Unicode 转义序列

    理解 native2ascii 工具的基本用途在软件开发,特别是涉及国际化处理的场景中,开发者常常需要处理不同编码的文本资源。native2ascii 是 Ja va 开发工具包(JDK)中提供的一个命令行实用程序,其主要功能是将包含本地字符编码(非ASCII字符)的文件,转换为包含 Unicode

    Java native2ascii 命令详解:解决属性文件乱码问题
    Java native2ascii 命令详解:解决属性文件乱码问题

    native2ascii 命令的由来与作用在Ja va开发中,处理国际化资源文件是一个常见需求。资源文件通常以.properties格式存储,用于支持多语言界面。然而,Ja va属性文件默认采用ISO-8859-1字符集编码,这导致了一个直接的问题:当文件中包含非拉丁字符(如中文、日文、韩文等)时,

    一个 memwatch 实战案例:定位野指针问题
    一个 memwatch 实战案例:定位野指针问题

    内存监控工具的价值与挑战在软件开发,尤其是使用C/C++这类手动管理内存的语言时,内存错误是程序员最常遭遇的难题之一。其中,野指针问题因其隐蔽性和破坏性,往往成为最难定位的“幽灵”缺陷。它可能潜伏在代码中,在特定条件下才被触发,导致程序崩溃、数据损坏或难以预测的行为。传统的调试手段,如打印日志或使用

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    macOS软件
    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    Mac软件 更多
    灵活计算器
    灵活计算器
    macOS/iOS/Android

    灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

    赤友清理大师
    赤友清理大师
    macOS

    赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

    极度公式
    极度公式
    Windows/macOS/Linux

    极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

    WINDOWS 更多
    Windows 10
    Windows 10
    Windows

    Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

    极度公式
    极度公式
    Windows/macOS/Linux

    极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

    密码键盘
    密码键盘
    Windows/macOS/iOS/Android

    密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。