不启动容器直接进入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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值