使用 docker 安装软件和管理软件很方便,尤其是测试配置集群的时候很方便。
下面介绍一下如何从 DockerHub 仓库拉取常用镜像和用于使用。
git pull 是根据名称来拉取,官方提供的前面没有用户名
默认拉取最新版本,可以通过后面加:版本号拉取对应版本,如 docker pull redis:5.0.7
我先后拉取了几个镜像:Redis、MySQL、zookeeper kafka 等。
可以通过 docker images 查看本地所有镜像
下面分别介绍着几个镜像的使用,其中 Redis 和 MySQL 在我们日常开发中使用最为频繁,今天就先介绍着两者的安装和挂载。
之前都是本地安装的,现在看能不能用 docker 替换他们。
如果需要设置密码可以加一行配置,如设置 redis 密码为123456
requirepass 123456
4.执行
这里说明一下参数
容器创建成功,并自动启动
5.测试 redis
因为我们配置文件里设置了密码为 123456,所以这里需要输入密码
简单地用命令添加了几条数据,然后可以看到数据目录已经有了持久化的数据
可以发现正常使用,而且 docker 重启后 redis 是自动启动的
3.执行
我这里是映射在本地 4306 端口
4.使用 Navicat 验证一下是否能连接
没问题
一、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。



三、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
- 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 -> 开启数据持久化



四、Docker 安装 MySQL 并挂载配置文件和数据
1.通过 git pull 命令拉取镜像,默认最新版,应该是8点几的版本 git pull mysql 2.新建 my.cnf 同样在 /Users/liuyanzhao/data 目录下新建了 mysql 目录,然后又在里面新建了 conf 和 data 目录,分别为配置目录和数据目录。在 conf 目录新建 my.cnf,内容如下- [mysqld]
- user=mysql
- character-set-server=utf8
- default_authentication_plugin=mysql_native_password
- # Only allow connections from localhost
- # bind-address = 127.0.0.1
- binlog_format=ROW
- log-bin=mysql-bin
- server-id=1
- [client]
- default-character-set=utf8
- [mysql]
- default-character-set=utf8
- 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


- 微信
- 交流学习,有偿服务
-
- 博客/Java交流群
- 资源分享,问题解决,技术交流。群号:590480292
-
2019年12月02日 21:13:06
你好啊