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

avatar 2019年11月24日00:46:17 6 4987 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
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

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

  

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

    你好啊