再次运行Docker镜像时原有容器的状态及丢失容器的恢复方法
Docker 常见问题解答
问题1:当再次运行某一Docker镜像时,此前基于该镜像创建的容器会发生什么变化?
此前创建的容器不会有任何变化。docker run的核心逻辑是基于指定镜像生成一个全新的独立容器实例,新容器和旧容器在文件系统、运行状态、数据存储上完全隔离,旧容器的运行状态、内部数据、配置都不会被改动。
问题2:拥有一个Docker镜像,此前已基于它创建了容器a,不小心执行了docker run命令后无法找到容器a,是否可以访问该容器?具体该如何操作?
可以访问。docker run只是新建了一个新容器,并不会删除或隐藏已存在的容器a,找不到是因为默认的docker ps命令仅显示运行中的容器,如果容器a处于停止状态就不会出现在列表中。操作步骤如下:
- 列出所有容器(包括运行中和已停止状态):执行命令
docker ps -a,在结果中找到容器a的名称或ID。 - 如果容器a处于停止状态,启动它:
docker start <容器a的名称或ID>。 - 启动后,若需要进入容器内部操作,可执行:
docker exec -it <容器a的名称或ID> /bin/bash(适用于多数Linux基础镜像,若镜像使用其他shell可替换为对应的路径);若容器有对外映射端口,直接通过原端口访问服务即可。
内容的提问来源于stack exchange,提问作者Dee
相关产品推荐
相关产品推荐

