查看: 73|回复: 0

[云和虚拟化] Docker运行临时镜像容器的实现

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-8-3
发表于 2026-1-12 10:57:45 | 显示全部楼层 |阅读模式

问题

我们在基于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 运行临时镜像内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部