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

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

作者:somenzz 2022-05-06 07:20:38

云计算

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

为大竹等地区用户提供了全套网页设计制作服务,及大竹网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、大竹网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

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

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

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

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

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

docker ps -a

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

docker commit $CONTAINER_ID somenzz/image_xxx_new

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

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

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 查看。

sudo docker pull python

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

sudo docker run --name mypython -dt python /bin/bash

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

sudo docker exec -it mypython python [宿主机器的 Python 脚本,非容器内部]

如果要安装依赖:

sudo docker exec -it mypython pip install requests

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

网页题目:如何使用不同的命令启动已经停止运行的Docker容器?
当前路径:http://www.mswzjz.com/qtweb/news1/161351.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联