开发者学堂课程【Docker 快速入门:Docker 安装 MySQL】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/616/detail/9414
Docker 安装 MySQL
Docker 常用安装
上一轮我们通过自己手写了一个 DockerFile, 这个是深入的基本功但是日常生活中常用的镜像都是已经做好的。
接下来我们来看,怎么从阿里云上面拉取对应的镜像然后进行本地的安装在Docker 里面运行起来。
以前有一个机器上要装 redis、mysql、tomcat 等可能需要十多种软件,但是现在装一个 Docker,第二个阿里云上拉对应的镜像 Docker 上一配就行了。
以前是连本机上的数据库,现在是连 Docker 上的数据库,到后面就可以直接连阿里云,换句话说你的 redis 可能就在阿里云上面,不用再去装本地的
我们以安装复杂的 mysql 和 redis 为例,告诉大家如何在本地将常用的容器装过来
首先,总体步骤搜、拉、看、启动、停止、删除
Tomcat,查看是否有拉取到 tomcat,docker images
运行 run-it-p,p 指定端口、P 随机分配
首先 docker hub 上面去查找 SQL
输入 docker images
如图,还没有 MySQL 镜像,输入docker images mysql
,还是没有。再查docker search mysql
这时 logs 如上图,如果想拉最新版本直接 docker pull mysql
但是,在从 docker hub (阿里云加速器)拉取 mysql 镜像到本地标签为 5.6 中和我们想象的不太一样,是 5.6 版本,如果说想拉一个 5.7,所以要改标签 id。
这时 docker pull mysql 就是最新版这时拉的是 5.6 版
镜像名+冒号+标签,是它的完整
输入 docker images, 出来的就是 mysql5.6,有镜像了以后叫 run
1.使用 mysql15.6 镜像创建容器(也叫运行镜像)
使用 mysql 镜像,
复制,又写了长长的命令。
上一轮讲了 tomcat9 的,这一轮来看 mysql 的
命令说明如上图所示,docker run-p 注意 mysql 的端口是 3306,这里故意写成12345 是为了让大家在体验一下端口艺设,--name 别名 mysql 因为全名叫mysql5.6,-d 是后台运行的意思,mysql 需要一个界面肯定是后台运行,中间的三个 -v 是 mysql 的配置、日志、date 存在哪儿。
言下之意,比如我们新建一个库就在 docker 容器的 /var/lib/mysql 里面,-e MYSQL_ROOT_PASSWORD=123456 是 mysql 的配置环境 ROOT 密码 123456。然后来执行 docker ps
, 先停一个 docker rm-f myt9
已经停了以后,直接跑如图所示这个,如果以前运行过一个重名的 mysql 这时在历史记录有了,如果不想重名那么 docker rm-f 42db9357a9f9 删掉这个东西
成功后如图,这时 docker ps 就是运行了这个容器,镜像是 5.6 容器是ba194da55684。开始交互运行,复制 MySQL 运行成功后的容器 ID /bin/bash
粘贴后如图,这时它不支持 ps-ef, 但是看到 ba194da55684 就会明白进入到了容器里面,再输入 mysql-uroot-p
,就是进入到了 docker 这个容器里面,然后输入 shut database,
如图,然后 create datebase db01,use db01,create table t_book(id int not noll primary key,bookName varchar(20))
回车搞定,show tables 数据库下面就有 t_book 这张表,那么 insert into t_book values(1,java)
这时假设这本书就叫 java;,这时 select*from t_book 就会有一个 1 java.
2.外部 Win10 也来连接运行在 docker 上的 mysql 服务
就是宿主机也来连接 docker 上的 mysql 服务,这时看看我们的终端 ip,if conpage, 现在是 202.135
注意可以新建一个连接,例如叫 mysql_docker,就是 docker 上的 mysql, 那么202.135,root,12345,端口改成 12345,然后测试连接,确定连接
这时,135 上面,表、t_book 打开
如图,保存。刷新一查,在外面插了 2 号,在 docker 里面没有任何问题,这时就完成了 docker 上面简单的 mysql,并用 web 的机器连接
3.数据备份小测试(可以不做)
意思是通过 docker 操作 docker 上面的 mysql 来进行数据的备份
复制,mysql 活着,这时 mysql 的容器命令,首先标点处没有任何问题,言下之意用 docker 执行这个容器,它装了一个 mysql 然后执行 mysqldump 的命令。所有数据库按照用户名和密码,这个密码 12345 在窒息的时候可能不安全,然后导出到宿主机的
zzyyuse/all-database.sql 路径下面形成这个文件
然后执行,cd/zzyyuse/ll, 有一个 all-database.sql.
彻底把数据库备份出来了,这时在别的地方执行数据全部 OK。