Docker运行临时镜像容器的实现

 更新时间:2026年01月12日 10:57:45   作者:红烧肉土豆条  
本文主要介绍了基于Docker进行镜像构建或排查问题时的两种调试方法,对于普通应用镜像,可以直接运行并进入容器内部进行调试,如MySQL、Redis等,对于基础镜像,由于它们会默认启动自己的进程,直接启动容器会导致生命周期结束,感兴趣的可以了解一下

问题

我们在基于docker进行镜像构建或进行问题排查,或需要对镜像的适用性进行初步调试,如镜像内的运行环境、依赖包版本、目录结构等,此时就需要将镜像启动起来,对内部情况进行查看或调试,我们有两种方法可以实现

普通应用镜像

部分应用镜像可以直接运行,然后进入容器内进行调试,如Mysql、Redis等,调试后删除容器即可,此时可以不考虑端口映射、文件目录挂载等因素,如调试redis

建议先运行起容器,再进入容器内部调试,不建议直接使用-it等命令,因为应用镜像会默认启动他们自己的进程,-it会失效

# 启动容器
docker run --name redis-debug -d redis:v7.0.5 
# 等待启动完成,进入容器
docker exec -it redis-debug /bin/sh
# 调试完成,删除容器

基础镜像

对于基础镜像,直接启动容器的方式是不可行的,其实也不是启动失败,而是先运行后因没有其他的指令需要执行,导致生命周期结束。

此处方法可同时满足基础镜像和各种应用镜像

# 临时启动镜像容器,并强制进入sh
docker run --rm -it --entrypoint /bin/sh --name redis-debug image:version
# 参数解释
#run: 运行指令
#--rm: 容器停止后删除,如容器的文件系统或其他资源
#-it: 交互式命令终端
#--entrypoint /bin/sh: 强制覆盖入口第一个进程,例如redis会启动redis-server,此时会将redis-server替换为/bin/sh, 不同的发行版对应的常用终端可自己调整, 如centos的可使用/bin/bash
#--name: 容器名称
#image:version: 镜像及版本
# 调试结束,使用exit命令退出容器,容器会自动删除
exit

到此这篇关于Docker运行临时镜像容器的实现的文章就介绍到这了,更多相关Docker 运行临时镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • docker镜像Tag为none的原因及分析

    docker镜像Tag为none的原因及分析

    文章介绍了Docker镜像标签为none的原因及其处理方法,none标签的镜像可能有用,也可能无用,具体取决于是否有容器引用,建议在构建同名同tag的镜像前检查是否存在同名镜像,并注意强行删除镜像可能带来的问题,Docker没有自动删除none镜像的机制,需要手动删除
    2025-02-02
  • 利用Docker分层构建优化镜像大小的实现

    利用Docker分层构建优化镜像大小的实现

    合适docker镜像文件大小不仅影响容器启动效率,也影响资源占用效率,本文介绍如何利用分层方式构建docker镜像,采用多种方式避免镜像文件太大而影响性能,需要的朋友可以参考下
    2025-01-01
  • 云原生自动化应用于docker仓库私有凭据secret创建

    云原生自动化应用于docker仓库私有凭据secret创建

    这篇文章主要为大家介绍了云原生自动化应用于docker仓库私有凭据secret创建,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • docker compose重启单个服务和所有服务的方法

    docker compose重启单个服务和所有服务的方法

    Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,下面这篇文章主要介绍了docker compose重启单个服务和所有服务的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • 物理机与启动的Docker容器间的目录映射方式

    物理机与启动的Docker容器间的目录映射方式

    这篇文章主要介绍了物理机与启动的Docker容器间的目录映射方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • docker部署LNMP&phpMyAdmin的方法步骤

    docker部署LNMP&phpMyAdmin的方法步骤

    这篇文章主要介绍了docker部署LNMP&phpMyAdmin的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 使用Docker部署的基于binlog实现Mysql8的操作方法

    使用Docker部署的基于binlog实现Mysql8的操作方法

    MySQL 基于 Binlog 的主从复制(Master-Slave Replication)是 MySQL 数据库中实现数据复制的一种机制,这篇文章主要介绍了使用Docker部署的基于binlog实现Mysql8,需要的朋友可以参考下
    2025-01-01
  • Docker安装Jenkins-2.249.3-1.1的详细过程

    Docker安装Jenkins-2.249.3-1.1的详细过程

    这篇文章主要介绍了Docker安装Jenkins-2.249.3-1.1,通过编写docke安装脚本来实现安装目的,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Docker实现进入容器内部的方法

    Docker实现进入容器内部的方法

    这篇文章主要介绍了Docker实现进入容器内部的方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • elasticsearch 组件基于单机的多实例集群部署方法

    elasticsearch 组件基于单机的多实例集群部署方法

    es 作为搜索引擎,应用场景不乏日志分析、网络安全、搜索引擎等,有时也会用作日志数据库使用,毕竟其出色的搜索查询性能,不是同等量级 关系型数据库可以比拟的,这篇文章主要介绍了elasticsearch 组件基于单机的多实例集群,需要的朋友可以参考下
    2024-03-03

最新评论