能帮忙看下这个问题不?

容器里面的东西, ```/home/postgres/tmp_basedir_polardb_pg_1100_bld/

已经丢失了
第二次进入容器用 docker exec -it <container_name> bash
docker run 是每次建立一个新容器么?

展开
收起
宇航员w 2022-07-07 15:12:04 325 分享 版权
阿里云 AI 助理回答

当您使用 docker exec -it <container_id_or_name> bash 命令时,您并不是在创建一个新的容器,而是进入一个已存在的容器内部并启动一个新的命令 shell(在这个例子中是bash)。这意味着如果您之前已经有一个运行中的容器,并且您通过其ID或名称正确地指定了它,您将能够访问该容器的文件系统,包括 /home/postgres/tmp_basedir_polardb_pg_1100_bld/ 这样的路径,前提是这个路径在容器初次创建和运行时存在并且没有被删除。

另一方面,docker run 命令确实会创建一个新的容器。如果指定的镜像不存在本地,Docker还会从仓库下载该镜像。这个命令不仅用于创建容器,还自动启动容器并执行指定的命令(默认是容器镜像的ENTRYPOINT或CMD)。所以,如果您使用 docker run 再次启动基于相同镜像的容器,您得到的是一个新的、干净的容器实例,不会包含之前容器中任何自定义或更改过的数据,除非您在运行时挂载了持久化数据卷或者使用了其他数据持久化的方法。

对于您提到的文件丢失问题,如果这些文件没有被持久化存储(例如,通过数据卷挂载到宿主机上,或者使用 Docker 的数据卷容器),那么当容器被删除时,这些文件也会随之丢失。为了避免这种情况,建议在设计容器应用时考虑使用数据卷来保存重要数据,确保数据的持久性。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 采用 Shared-nothing 与存储计算分离架构,支持水平扩展、分布式事务、混合负载等能力,100%兼容MySQL。 2021年开源,开源历程及更多信息访问:OpenPolarDB.com/about

收录在圈子:
还有其他疑问?
咨询AI助理