博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker-compose exec时出现"fork/exec /proc/self/exe: no such file or directory" 报错
阅读量:4589 次
发布时间:2019-06-09

本文共 1952 字,大约阅读时间需要 6 分钟。

问题:跟往常一样执行docker-compos exec redis sh时出现如下错误,而容器是运行状态中。

# docker-compose exec redis shrpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "process_linux.go:75: starting setns process caused \"fork/exec /proc/self/exe: no such file or directory\""

解决办法:

1、获取容器ID

# docker ps | grep arcs_redis_1ac248a3c5c0e        redis:alpine                 "docker-entrypoint..."   2 years ago         Up 16 minutes                   6379/tcp                                                                                                                                          arcs_redis_1

2、通过容器ID获取容器的PID

# ps -ef|grep libcontainerd | grep ac248a3c5c0eroot      6650  9053  0 11:14 ?        00:00:00 docker-containerd-shim ac248a3c5c0e3f6405c35e186b5d095aeb7af72b0f52bb08303baded251cdb61 /var/run/docker/libcontainerd/ac248a3c5c0e3f6405c35e186b5d095aeb7af72b0f52bb08303baded251cdb61 docker-runc 注:第二个字段为容器的PID

3、获取容器的mount位置

# grep "path" /var/run/docker/libcontainerd/ac248a3c5c0e3f6405c35e186b5d095aeb7af72b0f52bb08303baded251cdb61/config.json 注:mount的路径:{"path":"/var/lib/docker/devicemapper/mnt/cc2ff9576cdf7736acca50ffdaadef471e01a8ffe9acb039c1d423edd941bd38/rootfs"},此路径用于第6步挂载时使用。

4、用nsenter进入容器的namespace

# nsenter -m -t 6650 bash 注: 6650是容器的PID

5、查看容器的DeviceName

# docker inspect --format='{
{.GraphDriver.Data.DeviceName}}' ac248a3c5c0e ####ac248a3c5c0e是容器ID
docker-252:0-9700888-cc2ff9576cdf7736acca50ffdaadef471e01a8ffe9acb039c1d423edd941bd38

6、手动挂载

# mount /dev/mapper/docker-252\:0-9700888-cc2ff9576cdf7736acca50ffdaadef471e01a8ffe9acb039c1d423edd941bd38 -o rw,relatime,nouuid,attr2,inode64,sunit=512,swidth=1024,noquota -t xfs /var/lib/docker/devicemapper/mnt/cc2ff9576cdf7736acca50ffdaadef471e01a8ffe9acb039c1d423edd941bd38

7、退出

#exit

 8、再次执行docker-compose exec redis sh 无报错。

 

 说明:此报错是由于mount挂载点丢失,具体原因目前还未知晓,若有知晓者欢迎告知!

 

转载于:https://www.cnblogs.com/wanghongli/p/11200624.html

你可能感兴趣的文章
leetcode:Pascal's Triangle II【Python版】
查看>>
2019 HL SC day10
查看>>
[IE编程] 多页面基于IE内核浏览器的代码示例
查看>>
对不同型号开发板的认识及环境搭建
查看>>
web.xml配置详解之listener
查看>>
tarjan模板
查看>>
请让本题永远沉睡于此(东方化改题+给的标程)
查看>>
第二第三周暑期集训总结
查看>>
C#屏幕截图
查看>>
JQuery模仿a标签的点击事件
查看>>
github hexo 搭建博客
查看>>
JS调用百度地图API获取地理位置
查看>>
BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)
查看>>
BZOJ 4260 Codechef REBXOR(字典树)
查看>>
idea使用maven逆向mybitis的文件
查看>>
宿舍助手app——个人工作第二天
查看>>
线段树(hdu 2795)
查看>>
David Sankoff 介绍学习链接
查看>>
当连续进行多个请求,并且请求的url地址相同时。放弃前面的所有请求,只执行最后一次请求。...
查看>>
[IIS]安装及使用
查看>>