Ubuntu16.04使用docker安装MySQL

在安装MySQL时,自己按照别人的教程不管是安装mysql5.5还是mysql5.7总是在登录时遇到以下错误:

$ mysql -u root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)

不管自己是完全卸载后重新使用安装包安装,还是使用apt-get install安装,都会出现这样的错误。自己花了几乎一天的时间还没有搞定。后来,师兄告诉我可以使用docker安装mysq,方法l特别简单。自己尝试以后,成功了,非常感谢师兄~
自己以前也听说过docker,但是从未使用过,于是从头开始通过Docker 教程|菜鸟教程学习了docker的一些基础知识,并且很快就能上手使用docker安装mysql了。自己在安装的过中还是与教程有不同的地方,希望给大家做一个参考。

使用docker pull mysql安装mysql

① 查找Docker Hub上的mysql镜像

使用以下命令查找mysql镜像(因为自己需要sudo才能使用docker相关命令,所以自己的docker命令之前都会有sudo):

$ sudo docker search mysql

结果如下图所示:
这里写图片描述

② 拉取官方镜像

使用如下命令拉取官方的mysql镜像:

$ sudo docker pull mysql

拉取结果如下图所示:
这里写图片描述
可以使用如下命令查看mysql镜像的相关信息:

$ sudo docker images  

结果如图所示:
这里写图片描述

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小
    可以本地镜像列表里查到REPOSITORY为mysql,标签为latest的mysql镜像。

③ 使用容器运行mysql镜像

$ sudo docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

这里的容器名字叫:mysqldb,mysql的root用户密码是:123456,映射宿主机子的端口3306到容器的端口3306,仓库名mysql和标签(tag)latest唯一确定了要指定的镜像。注意:就算这里只有一个mysql也有必须要有tag,执行该命令返回的结果是:

ecc81474cf2d0e66018cfdafdd7fac79ebb1574682ec662bff20b4a11a573866
  • 注意:原本在菜鸟教程中此处运行容器的命令为:
$ sudo docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

但是自己执行之后会报错:
这里写图片描述

④ 查看容器启动情况

使用如下命令可以查看该容器的启动情况:

$ sudo docker ps 

结果如图所示:
这里写图片描述

至此,使用docker安装mysql的工作就已经完成了。
以后使用如下命令开启并执行名为mysqldb的容器:

$ sudo docker start mysqldb
$ sudo docker exec -it mysqldb /bin/bash

使用如下命令关闭名为mysqldb的容器:

$ sudo docker stop mysqldb

猜你喜欢

转载自blog.csdn.net/u014454538/article/details/78544227