自学内容网 自学内容网

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


原文地址:https://blog.csdn.net/CleverGerhard/article/details/142966202

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!