博主分享免费Java教学视频,B站账号:Java刘哥
使用 docker 安装软件和管理软件很方便,尤其是测试配置集群的时候很方便。
下面介绍一下如何从 DockerHub 仓库拉取常用镜像和用于使用。
这里说明一下参数
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。
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.执行- 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,内容如下- [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
你好啊