热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

启动容器过程导致“exec:\”/bin/sh\”:统计信息/bin/sh:无此类文件或目录”:未知

如何解决《启动容器过程导致“exec:\”/bin/sh\”:统计信息/bin/sh:无此类文件或目录”:未知》经验,为你挑选了1个好方法。

我想了解CMD和ENTRYPOINT的工作原理。所以,我刚刚创建了一个非常简单的Dockerfile

FROM scratch

CMD echo "Hello First"

ENTRYPOINT echo "Hello second" 

然后我建立这个形象:

docker build -t my_image .

日志如下:

步骤1/3:从头开始--->步骤2/3:CMD回显“ Hello First” --->使用缓存---> 9f2b6a00982f步骤3/3:ENTRYPOINT回显“ Hello first” --->使用缓存---> 1bbe520f9526已成功构建1bbe520f9526已成功标记my_image:latest安全警告:您正在针对非Windows Docker主机从Windows构建Docker映像。添加到构建上下文的所有文件和目录都将具有“ -rwxr-xr-x”权限。建议仔细检查并重置敏感文件和目录的权限。

当我创建此图像的容器时,它返回:

docker run my_image

错误是:

泊坞窗:来自守护程序的错误响应:OCI运行时创建失败:container_linux.go:344:启动容器进程导致“ exec:\” / bin / sh \”:stat / b in / sh:无此类文件或目录”:未知。

有人可以帮我解决错误吗?



1> David Maze..:

这里发生两件事。

FROM scratch从基本映像开始的Dockerfile根本不包含任何内容。它完全是空的。除了Docker为您提供的几个设备文件之外,没有一组基础工具或库或其他任何东西。

ENTRYPOINT echo ...命令被Docker重写为ENTRYPOINT ["/bin/sh", "-c", "echo ..."],并导致CMD完全被忽略。除非被覆盖docker run --entrypoint,否则它将成为容器运行的主要过程。

由于它是FROM scratch映像,根本不包含任何内容,因此它不包含外壳程序,因此出现“ / bin / sh:无此类文件或目录”错误。


建立映像“从零开始”是一个高级主题。`FROM ubuntu:18.04`可能会为您提供一个更加熟悉的环境。
Boot2Docker是虚拟机,而不是Docker映像。在“ FROM暂存”中也没有“ _”。其实什么都没有。没有Busybox。如果您需要`/ bin / sh`(需要99%,但不是100%的图像),则有一个[`busybox`](https://hub.docker.com/_/busybox/)图像它,但通常人们以[ʻalpine`](https://hub.docker.com/_/alpine/)开头,该代码可以运行大多数已编译的程序,并且更易于扩展。
推荐阅读
  • 如何解决《将用户添加到Docker容器》经验,为你挑选了4个好方法。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。第一种方式在上篇博客中已经详细介绍(Docker入门实战(二)—— ... [详细]
  • 我是docker的新手,正在学习 ... [详细]
  • 如何解决《Dockerfile中未调用RUN命令》经验,为你挑选了1个好方法。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • k8s进阶之搭建私有镜像仓库
    企业级私有镜像仓 ... [详细]
  • 1、官方下载jdk8地址:https:www.oracle.comjavatechnologiesjavasejavase-jdk8-downloads.html下载的版本:jdk ... [详细]
  • 是否可以使用环境变量在Dockerfile中设置容器版本? 例如:   .env ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 如何解决《从dockerfile编辑文件》经验,为你挑选了2个好方法。 ... [详细]
  • 如何解决《用于tomcat的Dockerfile》经验,为你挑选了2个好方法。 ... [详细]
author-avatar
小茹可爱的家1982
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有