使用 docker 安装软件和管理软件很方便,尤其是测试配置集群的时候很方便。
下面介绍一下如何从 DockerHub 仓库拉取常用镜像和用于使用。
在 https://hub.docker.com 注册一个账号
dockerhub 跟 github 有些相似,只不过 github 是管理项目代码的,dockerhub 是管理 docker 镜像的。
可以通过执行
可以通过
举例:比如我们这里搜索 redis,dockerhub 上会有很多镜像都叫 redis,排名(收藏数)最多的排在前面,如果是官方提供的会显示 OFFICIAL 为 OK。
git pull 是根据名称来拉取,官方提供的前面没有用户名
默认拉取最新版本,可以通过后面加:版本号拉取对应版本,如 docker pull redis:5.0.7
我先后拉取了几个镜像:Redis、MySQL、zookeeper kafka 等。
可以通过 docker images 查看本地所有镜像
下面分别介绍着几个镜像的使用,其中 Redis 和 MySQL 在我们日常开发中使用最为频繁,今天就先介绍着两者的安装和挂载。
之前都是本地安装的,现在看能不能用 docker 替换他们。
使用 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.执行
这里说明一下参数
容器创建成功,并自动启动
5.测试 redis
因为我们配置文件里设置了密码为 123456,所以这里需要输入密码
简单地用命令添加了几条数据,然后可以看到数据目录已经有了持久化的数据
可以发现正常使用,而且 docker 重启后 redis 是自动启动的
1.通过 git pull 命令拉取镜像,默认最新版,应该是8点几的版本
git pull mysql
2.新建 my.cnf
同样在 /Users/liuyanzhao/data 目录下新建了 mysql 目录,然后又在里面新建了 conf 和 data 目录,分别为配置目录和数据目录。在 conf 目录新建 my.cnf,内容如下
3.执行
我这里是映射在本地 4306 端口
4.使用 Navicat 验证一下是否能连接
没问题
下面介绍一下如何从 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.执行
- 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
3.执行
- 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 验证一下是否能连接
没问题
2019年12月02日 21:13:06
你好啊