从同一图像运行两个容器时,容器A和B
假设在容器A中,我们已经安装了包AA,而在容器B中,我们已经安装了包BB,而没有使用任何驱动器。
问题是,容器是否完全没有状态?只要我们还在使用那些容器,那么安装的软件包存储在哪里?我可以从容器B访问包AA,反之亦然吗?
答案 0 :(得分:3)
容器不是无状态的,它们是有状态的。每个容器在基本映像之上获得其自己的全资且唯一的覆盖文件系统。这些每个容器的更改(状态)彼此隔离,因此您无法从容器B访问包AA。当您docker rm container-a
您只是删除容器A的唯一覆盖时,保留基本图像不变。这是docker start
和docker run
是不同命令的部分原因,run
意味着创建一个新容器,因此创建一个新的每容器状态(最初只是基本图像),而start
暗示"使用持久状态从最后一次停止时开始执行容器"。