You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Docker新手求助:如何重新启动并复用已退出的容器?

解决Docker容器重启与修改保留问题

嘿,咱们来理清你遇到的问题,一步步解决它!

你当前操作的核心错误

你现在用的docker run -it 1d1a162a72a6 /bin/bash命令,本质是基于指定镜像创建并启动一个全新的容器实例。每次执行这个命令,Docker都会从镜像1d1a162a72a6生成一个干净的新容器——这个容器和你之前修改过的旧容器完全是两个独立的实例,所以之前安装的vim、编辑的Python程序自然看不到。这是对docker run命令的典型误解哦。

如何重启并连接到之前修改过的已退出容器

按照以下步骤操作,就能找回你之前修改的容器:

  1. 定位目标容器
    用你已经在使用的docker ps -a命令列出所有容器,找到你之前修改过的那个容器(比如你提到的ID为25bfc74fab3b、名字为festive_einstein的容器),确认它的STATUS列显示为Exited状态。
  2. 重启容器
    执行docker start命令启动这个已退出的容器,你可以用容器ID或者名字(名字更好记):
    docker start 25bfc74fab3b
    # 或者用名字更直观
    docker start festive_einstein
    
    这个命令会把处于停止状态的容器重新启动起来。
  3. 进入容器交互终端
    容器启动后,用docker exec命令连接到它的终端:
    docker exec -it 25bfc74fab3b /bin/bash
    # 同样可以用容器名
    docker exec -it festive_einstein /bin/bash
    
    这样进去之后,你之前安装的vim、编辑的程序都会原封不动地保留着。

后续最佳实践:让修改永久生效

如果你希望后续创建的容器都能直接继承这些修改,不用每次都找旧容器,可以把修改后的容器提交为一个新的自定义镜像:

docker commit <容器ID> my-custom-hadoop:v1

之后你就可以用这个新镜像来创建容器,每次生成的容器都会自带你之前的所有修改:

docker run -it my-custom-hadoop:v1 /bin/bash

内容的提问来源于stack exchange,提问作者deweloper clr

火山引擎 最新活动