前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用不同的命令启动已经停止运行的 Docker 容器?

如何使用不同的命令启动已经停止运行的 Docker 容器?

作者头像
somenzz
发布2022-05-24 14:44:10
2.5K0
发布2022-05-24 14:44:10
举报
文章被收录于专栏:Python七号

你好,我是征哥,我相信不少人都会遇到这样的问题,容器本来运行的好好的,可是有一天报错退出了,重启容器依然报错,因为默认命令会崩溃,这意味着我无法启动容器后使用 docker exec。

今天分享:如何不重新构建镜像的情况解决容器报错的问题,只需要两步。

第一步,将报错的容器保存至新的镜像

这一步是为了保存之前对容器的变更,如果没有对容器写入东西,这一步可以忽略。

先查看报错的容器,记录它的 CONTAINER_ID:

代码语言:javascript
复制
docker ps -a

然后将容器保存至新的镜像:

代码语言:javascript
复制
docker commit $CONTAINER_ID somenzz/image_xxx_new

第二步,从新的镜像启动一个新的命令

比如说启动一个 shell,去修复容器:

代码语言:javascript
复制
docker run -ti --entrypoint=sh somenzz/image_xxx_new

这里用到了 entrypoint[1],在构建镜像的时候,我们可以使用 CMD 或者 ENTRYPOINT 配置容器启动时的执行命令,但这两者有所不同:

  • CMD 命令设置容器启动后默认执行的命令及其参数,但 CMD 设置的命令能够被 docker run 命令后面的命令行参数替换。
  • ENTRYPOINT 配置容器启动时的执行命令,不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。

我用 Python 容器的方法

容器就是运行环境的打包。我在自己的服务器上安装了 Docker,那想获取一个 Python 环境,太简单了:

首先下载 Python 镜像,目前最新是 3.10.4,你可以 docker search python 查看。

代码语言:javascript
复制
sudo docker pull python

然后启动一个后台永不退出的容器:

代码语言:javascript
复制
sudo docker run --name mypython -dt python /bin/bash

然后就可以随意使用 Python 了:

代码语言:javascript
复制
sudo docker exec -it mypython python [是容器内部的脚本]

如果要安装依赖:

代码语言:javascript
复制
sudo docker exec -it mypython pip install requests

这样使用 Python 容器,不修改系统的一个文件,安全环保,不想用了,直接停止删除容器,再删除镜像。

最后的话

以上就是自己使用 Docker 经常遇到的问题及解决方法。

参考资料

[1]entrypoint: https://docs.docker.com/engine/reference/run/#/entrypoint-default-command-to-execute-at-runtime

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步,将报错的容器保存至新的镜像
  • 第二步,从新的镜像启动一个新的命令
  • 我用 Python 容器的方法
  • 最后的话
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档