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

avatar 2019年11月24日00:46:17 1 47 views

使用 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 验证一下是否能连接

没问题

 

历史上的今天
十一月
24
  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 哈哈 0

      你好啊