docker runc版本升级 (OCI runtime exec failed: exec failed: unable to start container process: open /dev)

博客内容描述了在尝试使用`docker exec`进入容器时遇到的'operation not permitted'错误,该问题源于runc版本为v1.1.3,而正常运行的机器上runc版本为v1.1.4。解决方案是升级runc到v1.1.4,包括下载新版本、备份旧版本、停止Docker服务、替换新版本runc、重启Docker等步骤。升级后,通过`docker info`检查runc是否成功更新,并能正常进入容器。
进入容器报错: operation not permitted : unknown
nist@zq-node2:~$ docker exec -it 88 /bin/sh
OCI runtime exec failed: exec failed: unable to start container process: open /dev/pts/0: operation not permitted: unknown
这台机器上runc版本时v1.1.3
正常进入容器的机器的runc版本时v1.1.4
原因:
解决:
需要将runc版本升级。
runc版本升级升级流程如下:
1、下载地址: https://github.com/opencontainers/runc/releases/,选择runc1.1.4
2、上传到服务器,修改名字并赋予权限
sudo mv runc.amd64 runc && chmod +x runc
3、 备份原有的runc
sudo mv /usr/bin/runc /home/runc_bak
4、停止docker
sudo systemctl stop docker
5、 替换新版本runc
sudo  cp runc /usr/bin/runc
6、启动docker
sudo systemctl start docker
7、 检查runc是否升级成功  sudo  docker info| grep runc
8、docker exec 进入容器
 
OCI runtime exec failed: exec failed: unable to start container process: exec: "xxx..."和OCI runtime exec failed: exec failed: unable to start container process: exec: "/bin/bash..."是Docker在执行容器内部命令时出现的错误。这些错误通常是由于容器内部的命令不存在或无法执行导致的。 解决这些错误的方法有以下几种: 1. 确保容器内部的命令存在:检查容器内部的命令是否正确安装,并且在容器中可以正常执行。可以通过进入容器内部进行测试,或者在构建镜像时确保命令正确安装。 2. 检查容器的入口点(entrypoint)或启动命令(CMD):OCI runtime exec failed错误可能是由于容器的入口点或启动命令设置不正确导致的。检查Dockerfile或docker-compose文件中的入口点或启动命令,并确保它们正确设置。 3. 检查容器的权限:有时候容器的权限设置不正确也会导致OCI runtime exec failed错误。确保容器的用户权限和文件权限正确设置,并且容器内部的命令可以被执行。 4. 检查容器的资源限制:如果容器的资源限制设置过低,可能会导致容器内部的命令无法执行。检查容器的资源限制,并根据需要进行调整。 5. 检查Docker版本和配置:有时候OCI runtime exec failed错误可能是由于Docker版本或配置问题导致的。确保使用的是最新版本的Docker,并检查Docker的配置是否正确。 以下是一个示例Dockerfile,演示如何解决OCI runtime exec failed错误: ```dockerfile FROM ubuntu:latest RUN apt-get update && apt-get install -y curl CMD ["curl", "https://www.example.com"] ``` 在这个示例中,我们安装了curl命令,并在容器启动时执行curl命令。如果在构建和运行容器时遇到OCI runtime exec failed错误,可以按照上述方法进行排查和解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值