docker 如何管理容器新文件?

How does docker manage container new files?

当 运行 来自同一图像的两个容器时,容器 A 和 B

假设在容器A中,我们安装了包AA,在容器B中,我们安装了包BB,没有使用任何驱动。

问题是,容器是完全无状态的吗?只要我们还在使用那些容器,安装包存储在哪里?我能否从容器 B 访问包 AA,反之亦然?

容器不是无状态的,而是有状态的。每个容器在基础镜像之上都有自己独有的覆盖文件系统。这些每个容器的更改(状态)彼此隔离,因此您不能从容器 B 访问包 AA。当您 docker rm container-a 时,您只是删除容器 A 的独特覆盖,而基本图像保持不变。这是 docker startdocker run 是不同命令的部分原因,run 意味着创建一个新容器并因此创建一个新的每个容器状态(最初除了基本图像之外什么都没有),而 start 意味着 "execute the container using the persisted state from when it was last stopped".