安装docker需要centos7+的版本,低版本需要额外的配置,很麻烦,不建议使用。

传送门:  6.5版本额外链接 https://blog.csdn.net/lvshuocool/article/details/79540617

*安装docker开始 

1、更新yum源(默认从无任何配置开始安装)
       sudo yum update

 2、配置需要的环境

       sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 3、设置yum源为阿里云
       sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 4、安装docker(ce是社区版,免费)

      sudo yum install docker-ce  

 5、安装完成后查看版本,出现docker的版本号,就ok了。

      docker -v

docker的安装以及mysql安装测试

 6、因为docker默认的镜像下载地址是国外的地址,所以搜索镜像的时候会连接超时,所以需要在etc目录下新建一个目录docker,在此目录下新建一个文件daemon.json文件,这个目录是docker高版本默认的配置文件。修改这个文件,添加以下参数信息,修改完保存。(确认不要有中文空格)

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],"live-restore": true

}

* 问题标注:此地址有时不生效,还是会访问默认的国外地址。但是是间歇性的,貌似只有新版的docker有这种问题。有知道原因的可以告诉我。

这是我后边改的阿里云的地址:

docker的安装以及mysql安装测试

这里显示已经改了,但有时还是会访问上边的默认地址。

7、修改完此文件后,重新加载此文件,使其生效。(如果daemon.json的配置不生效,可能是配置里有空格什么的,要注意下。)

     systemctl daemon-reload

8、启动docker

     systemctl start docker

    此时可以查看docker的状态,处于active(running)状态,说明启动完成。

docker的安装以及mysql安装测试

9、启动完成后,搜索镜像。举例搜索mysql的镜像,就会搜索出按热度(stars)排序的镜像,official表示该镜像是否为官方镜像。

如果上一步daemon.json配置始终无法生效,可以先拉取这个镜像完成demo测试(docker pull docker.mirrors.ustc.edu.cn/centos/mysql-57-centos7)

docker search mysql

docker的安装以及mysql安装测试

10、下载镜像(按上边搜索出的name属性拉取,注意是全名),不指定版本的话,默认会拉取最新版本的mysql

docker pull mysql 

docker的安装以及mysql安装测试

11、下载完成后,查看本地所有已下载的镜像。

docker images

docker的安装以及mysql安装测试

12、将镜像初始化容器,敲完命令回车,出现一长串字符串说明就ok了。

后边的3306端口指的是docker容器内的端口,需要通过另一个端口映射出去给外部调用,可以自己定义,达到一个镜像启动多个mysql容器的效果。

启动命令还有更详细的定制,具体可见 https://hub.docker.com/ 官网。

docker run -di --name=mysql-test -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
 

docker的安装以及mysql安装测试

13、查看容器列表和属性,发现我们都是按我们上边的命令配置的,没什么问题。

docker ps  -a 

docker的安装以及mysql安装测试

14、把上一步的id用命令执行即可,mysql容器启动成功。

docker restart  xxxxxxx

docker的安装以及mysql安装测试

15、测试下windows远程调用mysql,调用成功。(记得要关闭防火墙,然后再重启docker)

docker的安装以及mysql安装测试

16、补充使用mysql镜像的一些问题。(2019年06月26日23点57分)

  1、最近发现更新下来的mysql镜像的latest版本远程一直连不上。操作也都正常,sqlyog报错如图:

docker的安装以及mysql安装测试

大概意思是客户端不支持服务端用户验证协议。

网上查了下,发现这是mysql8.x新版本的特性,使用旧版本的mysql镜像就好了。

问题原因:

命令docker exec -it mysql03 bash,mysql03是自定义容器的名称,命令的意思是切换到容器的命令模式。

然后mysql用户名密码登录。

docker的安装以及mysql安装测试

然后查看用户,这里有一个列是展示用户访问协议的,直接修改访问协议也可以,具体哪个列想不起来了。????

docker的安装以及mysql安装测试

可以看到有两个root用户,下边的那个用户是linux本机登录时使用的,上边的用户带%的是远程登陆时使用的,通过sql它的远程访问策略改变为native策略就可以了,具体脚本忘了,记起来再补上。

为什么高版本mysql的用户校验策略反而更严格了,我觉得他的本意,是root用户本意只用于本机操作,新的用户来给用户进行远程访问。可能这是人性化的一种体现吧,当然不适用于新手写demo,简直就是坑,浪费时间。

既然自己测试玩儿,还是使用旧版本比较好。

目前官网有这几个版本的镜像,直接docker search mysql:5.6就ok了。

docker的安装以及mysql安装测试

16、以下提供几个常用的docker命令。

设置docker开机自启动
systemctl enable docker

停止docker
systemctl stop docker
重启docker
systemctl restart docker

相关文章: