当前位置: 首页 > article >正文

不启动容器直接进入Docker镜像里执行命令

        当自己打的Docker镜像 run 失败了的时候,想要调试最低级的方法就是去重新写Dockerfile,然后重新build、执行看日志,效率特别低。

        其实可以在不启动容器的情况下,直接进入Docker镜像里执行命令, 这样子对我们调试而言就很舒服了。

        1、如果只需要看看文件谁否正确,命令能否执行。 可以直接使用 /bin/sh 来作为Docker的 entrypoint。

       2、 一般镜像都有的 /bin/bash,如果是用Alpine Linux 这种连Bash都没有的极简镜像,也可以在Dockerfile里手动安装,可以测试脚本运行情况。

执行以下命令( 以 /bin/bash 作为示例)

docker run --rm -it --entrypoint=/bin/bash image-name

#image-name 就是你的镜像名称

执行完毕后就相当于直接进入了一个拥有你镜像环境的 Linux 主机而已,之后就可以执行 ls、 vi 、top 、cat 等。

如果镜像里边不存在 /bin/bash 会报如下错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused “exec: \”/bin/bash\”: stat /bin/bash: no such file or directory”: unknown.
ERRO[0000] error waiting for container: context canceled

想了解一个Docker镜像启动的CMD命令是什么、环境变量是什么,entrypoint是什么, 镜像里的文件保存在什么位置,可以借助下面的命令来查看:

docker inspect image-name


http://www.kler.cn/a/349549.html

相关文章:

  • Spring Boot项目如何使用MyBatis实现分页查询及其相关原理
  • AJAX案例——图片上传个人信息操作
  • RabbitMQ5-死信队列
  • Hive:复杂数据类型之Map函数
  • 在AWS上使用KMS客户端密钥加密S3文件,同时支持PySpark读写和Snowflake导入
  • qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别
  • 超声波测距
  • 青少年编程能力等级测评CPA C++一级试卷(1)
  • Java 17 面向对象编程(基础篇),快速了解面试对象编程
  • 跟着小土堆学习pytorch(一)——Dataset
  • 基于Verilog的简单调制解调器(MODEM)设计
  • 论文 期刊论文
  • RHCE第一天
  • 大厂面试真题-说一下推和拉的模式以及常见的使用
  • python画图|在三维空间的不同平面上分别绘制不同类型二维图
  • Java面向对象六大设计原则总结1
  • YOLOv11改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
  • 阿里云+frp内网穿透工作站远程开机
  • git的提取和拉取有啥区别
  • 配置环境windows-IIS默认拒绝put,delete的解决方案
  • MySQL-约束Constraint详解
  • @SneakyThrows:简化Java异常处理的利器
  • 【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门
  • vue+element的confirm提示消息文字变色和换行
  • 《TH-OCR:强大的光学字符识别技术》
  • Ubuntu-24.10无法安装Sunlogin-15.2的解决方案