Docker问题:container_linux.go:345: starting container process caused “process_linux.go:430


Docker问题:container_linux.go:345: starting container process caused "process_linux.go:430

上一篇:离线安装docker服务.

由于前面是离线安装的docker服务,所以我所有的服务镜像都是打成tar包进来的。在启动mysql镜像的时候,出现以下问题:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown.

场景如下:我使用命令创建并启动mysql容器,出错:

[root@localhost /]# docker run -d \
> -p 3306:3306 \
> --name mysql \
> -v /data/mysql:/data/mysql \
> -v /data/mysql/conf:/etc/mysql/conf.d \
> -v /data/mysql/logs:/logs \
> -v /data/mysql/data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> mysql:5.6
e17ddb51ce7e8ef2d9cb32a8f3427ee49533f1b33772464e599e54603516d748
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: 
starting container process caused "process_linux.go:430: 
container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.

原因:

“write /proc/self/attr/keycreate: permission denied” 表示文件没有写入权限,被拒绝访问了

selinux是linux为了系统安全性做的控制,会控制用户可以访问、读取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件没有权限,就是被selinux控制了。
selinux有三种模式:enforcing 强制 permissive 宽容的 diabled 禁止的,顾名思义,权限限制,从高到低。
在这里插入图片描述


解决方法:

/etc/selinux下的config文件中的SELINUX属性改为disabled
步骤:

vi /etc/selinux/config

可以看到里面的属性为:enforcing强制性的
在这里插入图片描述
I键进入编辑模式,将SELINUX属性改为disabled,保存退出:wq,重启liunx系统即可


再运行容器即可:

docker start mysql

参考博客:

  • https://www.jianshu.com/p/6a344c8c9101
  • https://blog.csdn.net/qq_41453285/article/details/88539523

欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!
在这里插入图片描述


  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当您在尝试创建 Docker 容器时遇到错误信息 `Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused`,这通常表示在启动容器的操作过程中出现了某些问题。这个错误信息并没有提供具体的错误原因,因此需要进一步分析。以下是可能的原因及其解决步骤: ### 可能的问题及解决方案 #### 1. 镜像问题 - **检查镜像**:确认使用的镜像是有效的,并且包含了所有必要的依赖。可以尝试更新镜像缓存或者从官方仓库重新拉取镜像。 ```bash docker pull <your_image_name> ``` #### 2. 环境变量设置 - **检查环境变量**:确保在运行命令前设置了所有必需的环境变量,特别是对于依赖特定配置的应用程序来说。 - 示例: ```bash export VAR1=value1 export VAR2=value2 ``` #### 3. 运行权限问题 - **检查用户权限**:确保当前用户有足够的权限去运行容器。如果使用的是 root 用户,尝试使用非根用户或者修改容器内的文件权限。 - 示例: ```bash sudo usermod -a -G docker your_username ``` #### 4. 资源限制 - **检查资源限制**:确认您的系统是否有足够的资源(如内存、CPU等)来运行容器。可以通过 `docker info` 检查可用资源状态。 #### 5. Docker 守护进程问题 - **重启 Docker 守护进程**:有时重启 Docker 守护进程可以解决问题。 - 示例: ```bash systemctl restart docker.service # 对于 Linux 系统 ``` #### 6. 版本兼容性问题 - **检查Docker版本**:确保您的Docker客户端和守护进程版本兼容。旧版本可能存在已知的 bug 或兼容性问题。 - 示例: ```bash docker version ``` #### 相关问题 - **1. 如何排查 Docker 错误日志?** - **2. Docker 怎么配置网络?** - **3. 如何升级或回滚到特定的 Docker 版本?** 以上内容应该能够帮助您诊断并解决大部分常见的 Docker 创建容器失败的问题。如果问题依然存在,建议详细查看容器的日志信息,这对于深入理解错误原因非常有帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值