【docker: Error response from daemon: OCI runtime create failed: container

【docker: Error response from daemon: OCI runtime create failed: container,第1张

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380 报错解决

docker安装mysql5.7 运行不起来,报OCI runtime create failed

docker上pull mysql5.7没问题
执行一下代码报错

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

cd进入/mydata/mysql/conf查看发现并没有正确挂载,也没有/etc/mysql这个文件路径

报错原因:因为linux与docker版本的兼容性问题,docker版本需要降级或者重装

解决办法有两个:

重装指定版本docker降级docker到指定版本

第一种办法:卸载并重装:

//第一步:卸载docker

//列出docker下载过的包
sudo yum list installed | grep docker

//删除以上所有相关安装包  sudo yum -y remove “以上显示相关包”
sudo yum -y remove docker-ce.x86_64
sudo yum -y remove docker-ce-cli.x86_64

//删除相关的镜像与容器
sudo rm -rf /var/lib/docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
                 
//测试是否删除
docker -v


//第二步:重装docker指定版本

//安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

//添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//更新 yum 缓存:
sudo yum makecache fast

//查看可用版本的 Docker-ce:
yum list docker-ce --showduplicates | sort -r

//如果需要只显示table版本,可以关闭测试版本的list:
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test

//更新yum包索引
yum makecache fast

//安装指定版本的docker-ce:
sudo yum install -y docker-ce-17.03.2.ce-1.el7.centos 

//报错:如果在安装指定版本的docker时显示需要安装指定版本的docker-ce-selinux依赖包,请安装:
yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm 

然后重新拉取mysql

docker pull mysql:5.7

第二种办法:降级docker到指定版本:

//停止docker
sudo systemctl stop docker
//输入降级命令
yum downgrade --setopt=obsoletes=0 -y docker-ce-17.03.2.ce-1.el7 docker-ce-selinux-17.03.2.ce-1.el7 containerd.io
//检查docker版本
docker -v

重新创建容器并启动

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

成功!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/989623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存