Docker安装Mysql和Redis并本地成功连接

792 阅读3分钟

点击关注强哥,查看更多精彩文章呀

哈喽,大家好,我是强哥。

最近强哥在学习一个开源项目,由于想要在本地部署项目以便更好的预研学习,所以需要进行项目的本地环境搭建。

项目中有用到MySQL和Redis,可是如果在本地直接安这连个玩意强哥又觉得很不舒服,总感觉在机子上直接安各种各样的开发软件以后会不好维护。刚刚好,自己机子上安装了Docker,那为什么不直接把MySQL和Redis安到Docker上呢?

说干就干,这篇文章只是简单的记录下Docker安装MySQL和Redis的步骤方法,可以说是个备忘录吧。毕竟搭建环境还是可能时不时要用到的,自己实践好的拿来就用,比较省时间。

安装Mysql

1、查找镜像

docker search mysql

2、下载镜像

选择自己想要的版本,然后下载镜像

docker pull centos/mysql-57-centos7 

3、创建数据卷

docker volume create datavolume

创建一个数据卷,根据Docker最佳实践,容器需要持久化的数据都应该存储在数据卷上。

4、通过镜像创建容器并运行:

# 启动容器,端口映射到3308,挂载之前的数据卷
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=926443 \
-v datavolume:/var/lib/mysql \
-p 3306:3306 f83a2938370c  

命令解释:

  • f83a2938370c为Image ID
  • -d 是说让我们的容器在后台运行
  • -e 给新创建的数据库设置root密码
  • -v 把容器中的/var/lib/mysql映射到刚才创建的数据卷上
  • -p 3306:3306 把所有对宿主机3306端口的tcp报文转发到容器的3306端口

5、配置外部连接

容器运行起来后,Mysql还不能直接连,需要配置权限、密码相关信息。

//进入容器:
docker exec -it 62349aa31687 /bin/bash

//进入mysql:
mysql -uroot -p

//授权:
mysql> GRANT ALL ON *.* TO 'root'@'%';

//刷新权限:
mysql> flush privileges;

//更新加密规则:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

//更新root用户密码:
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

//刷新权限:
mysql> flush privileges;

配置完上面的信息之后,就可以直接在外部连接到Docker中的Mysql容器了

安装Redis

其实有了上面安装Mysql的经验,按差不多的顺序安装Redis就可以了。

1、查找镜像

docker search redis

2、下载镜像

选择自己想要的版本,然后下载镜像

docker pull redis

3、运行Redis容器

docker run --name redis -d -p 6379:6379 5d44f444e409  
  • 5d44f444e409为Image ID

4、本地连接

Redis相对没有Mysql这么麻烦,还要配权限什么的。Redis容器启动后,直接外部就可以连啦:

当然,./redis-cli这个也是要本地有redis的包才行,可以用Redis-manager测试连接或者写一段代码测试连接效果一样哈。

写在最后

其实,这篇文章内容相对来说,没有太多的技术含量,不过是一篇备忘录而已。当然,对于强哥这种有点健忘症的人来说,记录收藏一下,还是挺有用的。

整个用Docker安装软件的流程就大体这样,比如之后还要用到其他的一些软件之类的,其实有Docker真的能方便很多。安装流程也大体如此,比较简单。安装一次Docker之后,便一劳永逸啦,比在本机安装真的会方便不少。

点击关注强哥,查看更多精彩文章呀