在我们实际使用docker的过程中,难免出现各种各样的错误,下面我将自己遇到的比较难解决的错误和解决方法记录下来。

1.docker启动报错一

(1).描述

docker启动报错 :Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disabl...nabled=false)

(2).报错情况

环境:Centos7

命令:systemctl start docker

  systemctl status docker.service

(3).解决方案

 

意思是此linux的内核中的SELinux不支持 overlay2 graph driver,重新编辑docker配置文件:

命令:vi /etc/sysconfig/docker   

原来配置:

改为:

2.docker启动报错二

(1).描述

Job for docker.service failed because the control process exited with error code,

(2).解决方案

修改 /etc/docker/daemon.json文件,注意(中英文),修改为如下内容:

3.docker中启动镜像时报错

(1).描述

 oci runtime error: container_linux.go: starting the process: write pa rent: broken pipe"

(2).原因

linux内核版本太低

(3).解决

要执行命令, yum update ,更新完再重启linux重启docker重启镜像

注意:ubuntu系统安装软件的命令是 sudo apt-get software  (例如, sudo apt-get install -y docker.io)

         还有一部分linux系统是用yum,例如centos,安装docker命令是,yum install docker

4.连接docker中的mysql docker容器出错

(1).描述

docker中启动mysql容器后,用navicat连接数据保存信息如下:

Client does not support authentication protocol 错误

(2).原因

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

(3).解决方案

把mysql用户登录密码加密规则还原成mysql_native_password

步骤:

        1>.进入mysql容器:docker exec -it container-id /bin/bash

        2>.连接mysql:mysql -u root -p  接着输入密码

        3>.修改加密规则:

                     不是虚拟机上的docker用下面这个:

                     ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 

                     虚拟机上的docker用下面这个:

                     alter user 'root'@'%' identified with mysql_native_password by '123456';

         4>.刷新:FLUSH PRIVILEGES;

    重新连接,就能连接成功了。

 

Logo

更多推荐