docker 安装 MySQL、Redis 挂载外部配置和数据

avatar 2019年11月24日00:46:17 6 4326 views
博主分享免费Java教学视频,B站账号:Java刘哥
使用 docker 安装软件和管理软件很方便,尤其是测试配置集群的时候很方便。 下面介绍一下如何从 DockerHub 仓库拉取常用镜像和用于使用。

一、DockerHub 注册登录

在 https://hub.docker.com 注册一个账号 dockerhub 跟 github 有些相似,只不过 github 是管理项目代码的,dockerhub 是管理 docker 镜像的。   可以通过执行 docker login 命令交互式的输入用户名及密码来完成在命令行界面登录 Docker Hub。你可以通过 docker logout 退出登录。  

二、拉取镜像

可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。 举例:比如我们这里搜索 redis,dockerhub 上会有很多镜像都叫 redis,排名(收藏数)最多的排在前面,如果是官方提供的会显示 OFFICIAL 为 OK。   git pull 是根据名称来拉取,官方提供的前面没有用户名 默认拉取最新版本,可以通过后面加:版本号拉取对应版本,如 docker pull redis:5.0.7 我先后拉取了几个镜像:Redis、MySQL、zookeeper kafka 等。 可以通过 docker images 查看本地所有镜像   下面分别介绍着几个镜像的使用,其中 Redis 和 MySQL 在我们日常开发中使用最为频繁,今天就先介绍着两者的安装和挂载。 之前都是本地安装的,现在看能不能用 docker 替换他们。  

三、Docker 安装 Redis 并挂载配置文件和数据

使用 docker 的时候,如果涉及到数据的和配置的,我们最好把配置和数据放在磁盘某个位置。 如果采用默认的,配置文件和数据都在容器里面,一旦容器删除就会导致数据丢失,挺不爽的。 所以最好将配置和数据挂载到磁盘。 我这里 1.通过 git pull 命令拉取镜像,默认最新版,应该是5点几的版本 git pull redis   2.准备 redis.conf 文件 可以在 github 上找 https://github.com/antirez/redis/blob/5.0/redis.conf   3.修改 redis.conf 文件,允许远程访问 我这里在我的电脑 /Users/liuyanzhao/data 目录下新建了 redis 目录,然后又在里面新建了 conf 和 data 目录,分别为配置目录和数据目录。 将 redis.conf 放到 conf 目录,同时修改 redis.conf 主要修改两处: ① 把 bind 127.0.0.1 这行注释掉,前面加一个#,或者直接删除这行 ② 把 protected-mode 的 no 改成 yes 如果需要设置密码可以加一行配置,如设置 redis 密码为123456 requirepass 123456   4.执行
  1. docker run -d --privileged=true -p 6379:6379 --restart always -v /Users/liuyanzhao/data/redis/redis.conf:/etc/redis/redis.conf -v /Users/liuyanzhao/data/redis/data:/data --name redis1 redis redis-server /etc/redis/redis.conf --appendonly yes
这里说明一下参数
-d -> 以守护进程的方式启动容器 
-p 6379:6379 -> 绑定宿主机端口 
--name myredis -> 指定容器名称 -
-restart always -> 开机启动 
--privileged=true -> 提升容器内权限 
-v /root/docker/redis/conf:/etc/redis/redis.conf -> 映射配置文件 
-v /root/docker/redis/data:/data -> 映射数据目录 
--appendonly yes -> 开启数据持久化
  容器创建成功,并自动启动   5.测试 redis 因为我们配置文件里设置了密码为 123456,所以这里需要输入密码 简单地用命令添加了几条数据,然后可以看到数据目录已经有了持久化的数据   可以发现正常使用,而且 docker 重启后 redis 是自动启动的  

四、Docker 安装 MySQL 并挂载配置文件和数据

1.通过 git pull 命令拉取镜像,默认最新版,应该是8点几的版本 git pull mysql   2.新建 my.cnf 同样在 /Users/liuyanzhao/data 目录下新建了 mysql 目录,然后又在里面新建了 conf 和 data 目录,分别为配置目录和数据目录。在 conf 目录新建 my.cnf,内容如下
  1. [mysqld]
  2. user=mysql
  3. character-set-server=utf8
  4. default_authentication_plugin=mysql_native_password
  5. # Only allow connections from localhost
  6. # bind-address = 127.0.0.1
  7. binlog_format=ROW
  8. log-bin=mysql-bin
  9. server-id=1
  10. [client]
  11. default-character-set=utf8
  12. [mysql]
  13. default-character-set=utf8
3.执行
  1. docker run -d -p 4306:3306 --restart always --privileged=true --name mysql1 -e MYSQL_USER="root" -e MYSQL_PASSWORD="123456" -e MYSQL_ROOT_PASSWORD="123456" -v /Users/liuyanzhao/data/mysql/conf/my.cnf:/etc/my.cnf -v /Users/liuyanzhao/data/mysql/data:/var/lib/mysql mysql
我这里是映射在本地 4306 端口   4.使用 Navicat 验证一下是否能连接 没问题  
  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:1   待审核评论数:0
  1. avatar 哈哈

    你好啊