首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用docker-compile构建项目时,创建的文件不会持久化(绑定卷| Windows 10)

使用docker-compose构建项目时,创建的文件不会持久化是因为在Windows 10上,Docker默认使用的是Linux容器,而Windows文件系统与Linux文件系统不兼容。因此,需要进行一些额外的配置才能实现文件的持久化。

解决这个问题的一种方法是使用Docker的数据卷(Volume)功能。数据卷是一个可供容器使用的特殊目录,它可以绕过容器的文件系统,直接将数据存储在主机的文件系统中。这样,即使容器被删除或重新创建,数据仍然可以保留。

以下是解决方案的步骤:

  1. 在docker-compose.yml文件中,为需要持久化的目录添加一个数据卷定义。例如,假设你的项目需要将文件保存在容器的/app/data目录下,可以在对应的service中添加以下配置:
代码语言:txt
复制
volumes:
  - ./data:/app/data

这将把主机的./data目录与容器的/app/data目录进行绑定。

  1. 在Windows上,Docker默认将C盘(C:\)设置为共享驱动器。因此,需要将项目文件夹放在C盘以外的位置,以便能够在Docker容器中访问到。
  2. 在Docker Desktop应用程序中,打开“Settings”(设置)窗口,选择“Resources”(资源)选项卡,然后点击“File Sharing”(文件共享)。
  3. 在文件共享列表中,添加你的项目文件夹所在的路径,确保Docker可以访问到该文件夹。
  4. 重新构建和启动你的项目,文件应该会被正确地持久化在主机的指定目录中。

需要注意的是,以上解决方案是针对Windows 10上使用Docker的情况。对于其他操作系统或Docker版本,可能需要进行相应的调整。

推荐的腾讯云相关产品:腾讯云容器服务(Tencent Kubernetes Engine,TKE)

腾讯云容器服务(TKE)是一种高度可扩展的容器管理服务,可帮助用户轻松部署、管理和扩展应用程序容器。TKE提供了强大的容器编排和调度功能,支持Docker和Kubernetes,并提供了可靠的容器实例、负载均衡、存储卷等功能,以满足各种应用场景的需求。

了解更多关于腾讯云容器服务的信息,请访问:腾讯云容器服务

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker入门:使用数据文件挂载进行数据存储与共享

容器删除后,数据也跟着删除,虽然通常我们不会删除容器,但是一旦宿主机发生故障,我们重新创建容器恢复服务,那么之前容器创建文件就会丢失,这会为我们带来不必要麻烦。...提供HTTP服务,将日志写入磁盘,并制作镜像 数据绑定文件挂载、tmpfs缓存挂载优点与特性介绍 将数据(Volume)绑定到容器指定目录,实现容器数据持久存储与共享 将宿主机文件/目录挂载(...7.87 本文中使用命令如非专门说明,均在Windows cmd中执行,如使用macOS,可以替换为对应命令操作 二、数据与挂载 1、数据(Volume) 数据(Volume)是Docker官方推荐数据持久存储方式...,也是目前最成熟Docker持久存储方案,它具备以下优点/特性 数据绑定挂载(Bind mounts)更容易备份或迁移 数据可以通过 Docker CLI 命令或 Docker API 进行管理...)是Docker早期提供数据持久存储方式,我们可以将宿主机目录/文件挂载到容器中, 并绑定在容器指定目录/文件上,它具备以下优点/特性 挂载目录/文件非常方便,但文件备份跟迁移相对麻烦

4.1K20

Docker学习笔记之docker volume 容器那些事(一)

0x01 volume 方式 volume 方式是 docker 中数据持久最佳方式。...下面这个例子,首先创建独立卷使用 volume driver,然后在启动创建容器使用 volume driver。...如,你可以将 Maven target/ 挂载到容器中,并且每次主机上构建 Maven 项目,容器都可以访问重建构件。 主机文件或目录结构与容器所需一致。...使用 --mount 绑定主机上不存在文件或目录,则不会自动创建,会产生一个错误。 使用 bind mount 启动容器 主机上目录 source/target,容器目录 /app/。...相关用例 tmpfs,使用情况一般是,对安全比较重视以及不需要持久数据。 使用方式 --tmpfs 和 --mount 关系与前面两种方式关系不用多说。

1.7K30

006.OpenShift持久性存储

使用临时存储意味着,当容器停止,写入容器内文件系统数据将丢失。 当容器在停止也需要持久保存数据,OpenShift使用Kubernetes持久(PVs)为pod提供持久存储。...定义持久声明 用户创建具有特定存储量、特定访问模式和可选存储类PVC。master监视新pvc,要么找到匹配PV,要么等待存储类创建一个供应程序,然后将它们绑定在一起。...使用持久存储 Pods使用claims作为。集群检查查找绑定声明,并为pod绑定。对于那些支持多种访问模式,用户在将其声明用作pod中指定需要哪种模式。...如果PV更大,OpenShift不会使用空间限制为指定PV大小,并且允许容器使用文件系统上所有空闲空间。OpenShift自身提供了存储配额和存储位置限制,可用于控制项目资源分配。...当构建完成,build部分Complete旁边应该出现一个绿色复选标记。 ? ?

1.8K10

浅入kubernetes(2):Kubernetes 组成

容器应用程序与它们所需库、二进制文件和配置文件绑定到一个容器中。...,然而,只使用运行应用程序所需库和二进制文件构建应用程序容器,不需要导入所有可用东西,这样可能会更有效率。...由于容器最初设计为临时性和无状态,因此几乎不需要解决存储持久性问题。然而,随着越来越多需要从持久性存储读写应用程序被容器,对持久性存储访问需求也随之出现。...在 Docker 中,我们可以使用以下命令管理 # 创建自定义容器 docker volume create {名称} # 查看所有容器 docker volume ls # 查看指定容器详细信息...docker volume inspect {名称} 我们可以在运行容器使用 -v 映射主机目录,或者映射容器到容器中。

65840

你必须知道Docker数据(Volume)

由上图可以知道,目前所有Container数据都保存在了这个目录下边,由于没有在创建指定,所以Docker帮我们默认创建许多匿名(就上面这一堆很长ID名字)。   ...这时,如果我们手动stop并且remove当前nginx容器,我们会发现容器里面的文件还在,并没有被删除掉。 ?    由此可以验证,在数据里边东西是可以持久。...3.3 清理 docker stop edc-nginx docker rm edc-nginx   同volumes一样,当我们清理掉容器之后,挂载目录里面的文件仍然还在,不会随着容器结束而消失,从而实现数据持久...3.4 应用案例   在服务治理组件中,服务发现组件是一个最常用组件之一,Consul是一个流行服务发现开源项目,Consul推荐我们使用配置文件方式注册服务信息。...四、小结   本文探索了Docker数据及挂载数据到容器两种主要方式Volumes和Bind Mounts,并介绍基本使用方式和步骤,通过数据我们可以实现Docker数据持久,在实际应用中比较广泛

2.1K31

Docker最全教程——数据库容器持久保存数据(十二)

上一节我们讲述了SQL Server容器实践(注意,SQL Server现在也支持跨平台),本节将讲述如何持久保存数据,并且接下来将逐步讲解其他数据库(MySql、Redis、Mongodb等等)容器实践...默认情况下,在容器内创建所有文件都存储在可写容器层中。这意味着: · 当该容器不再存在,数据不会持久存在,并且如果另一个进程需要,则可能很难从容器中获取数据。...使用数据持久保存数据库文件 是保存Docker容器中数据首选机制。虽然绑定挂载依赖于主机目录结构,但完全由Docker管理。主要有如下好处: · 易于备份或迁移。...· 可以使用Docker CLI命令或Docker API管理。 · 适用于Linux和Windows容器。 · 可以在多个容器之间更安全地共享。...因此,通常情况下,相对于容器可写层中持久数据来说是更好选择,因为不会增加容器大小,并且内容存在于给定容器生命周期之外。接下来,我们就一起来实践。 ?

1.4K30

Docker最全教程——数据库容器持久保存数据(十一)

由于实践需要花费大量时间,而目目前业务繁忙,只能加班来进行一些实践并编写,如果编写比较慢,请多多海涵。 目录 ? 如何持久保存数据? 默认情况下,在容器内创建所有文件都存储在可写容器层中。...这意味着: · 当该容器不再存在,数据不会持久存在,并且如果另一个进程需要,则可能很难从容器中获取数据。 · 容器可写层紧密耦合到运行容器主机。数据迁移很麻烦。...使用数据持久保存数据库文件 是保存Docker容器中数据首选机制。虽然绑定挂载依赖于主机目录结构,但完全由Docker管理。主要有如下好处: · 易于备份或迁移。...· 可以使用Docker CLI命令或Docker API管理。 · 适用于Linux和Windows容器。 · 可以在多个容器之间更安全地共享。...因此,通常情况下,相对于容器可写层中持久数据来说是更好选择,因为不会增加容器大小,并且内容存在于给定容器生命周期之外。接下来,我们就一起来实践。 ?

1.8K20

Docker---容器数据

mydocker文件夹并进入 在DockerFile中使用`VOLUME指令`给进行添加一个或多个数据 File构建 build后生成镜像 run 容器 容器内目录地址,如果不填写对应主机目录地址...是什么 类似redis里面的rdb和aof,用来做数据持久操作 能干嘛 容器持久 容器间继承加共享数据 详解 就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统...,因此能够绕过Union File System提供一些用于持续共享数据特性 设计目的就是数据持久,完全独立与容器生存周期,因此Docker不会在容器删除删除其挂载数据 特点 数据可在容器直接共享或者重用数据...更改可以直接生效 数据更改不会包含在镜像更新中 数据生命周期一致持续到没有使用它为止 ---- 容器内添加数据方式 直接命令添加 命令: docker run -it -v /宿主机绝对路径目录...,成功 下面切换到dataVolumeContainer目录下面,尝试创建文件 提示只读,说明只读权限只针对于和宿主机绑定共享目录 宿主机在对应myDataVolume目录下创建文件成功

79630

如何备份Kubernetes和Docker

用户不必备份容器中所有内容,但在发生灾难备份运行和管理容器配置是很重要。 用户容器基础设施需要某种类型备份。Kubernetes和Docker在灾难之后不会自己构建。...用于描述每个部署YAML文件 容器创建或更改持久数据 •持久 •数据库 Dockerfiles Docker容器从镜像运行,其镜像从Dockerfiles构建。...这是将备份集成到商业备份环境中一种方法。 持久 容器可以通过多种方式访问持久性存储,而持久性存储可用于存储或创建数据。传统Docker位于Docker配置子目录中。...如果它是传统Docker,则可以通过将其挂载到另一个在备份不会更改其数据容器中进行备份,然后在绑定安装创建tar镜像,然后使用备份系统使用任何方法进行备份。...另外,如果用户使用绑定安装目录、NFS安装文件系统或对象存储系统作为持久性存储系统,则可以使用最佳方法来备份该存储系统。这可能是快照,然后是复制,或者只是在该系统上运行商业备份软件。

1.4K10

Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)

由于TeamCity这边需要使用到数据持久,那么在TKE中,我们如果实现容器服务持久呢?...), 也可以不填写源路径(对应KubernetesEmptyDir),不填写将分配主机临时目录挂载到容器挂载点,指定源路径本地硬盘数据适用于将数据持久存储到容器所在宿主机,EmptyDir...可以指定一块腾讯云 CBS 云硬盘挂载到容器某一路径下,容器迁移,云硬盘会跟随迁移,使用云硬盘数据适用于数据持久保存,可用于Mysql等有状态服务,设置云硬盘数据服务,实例数量最大为 1...· NFS盘:可以使用腾讯云文件存储CFS, 也可使用自建文件存储NFS, 只需要填写NFS路径,使用NFS数据适用于多读多写持久存储,适用于大数据分析、媒体处理、内容管理等场景。...使用临时数据生命周期与实例生命周期保持一致。 4.数据挂载需要设置权限,默认设置为读写权限。 了解了这些,接下来实践我们使用本地硬盘和云硬盘来实现我们云端数据持久

2.2K20

Docker 到底是个啥玩意?从使用到深入!

Docker 支持持久和非持久两种方式存储。 非持久存储自动创建,从属于容器,生命周期与容器相同,即删除容器也会删除全部非持久数据。...与容器是解耦,从而可以独立地创建并管理,并且也不与任意容器声明周期绑定,即用户删除一个关联了容器,但是不会被删除。 非持久存储 每个容器都会被自动分配本地存储。...默认情况下,容器全部文件和目录都是用该存储。非持久存储属于容器一部分,并且与容器生命周期一样---容器创建时会创建持久存储,同时该存储也会随着容器删除而删除。...总的来说,Overlay2 驱动正在逐渐流行,可能在未来会成为大多数平台上推荐存储驱动。 持久 容器中持久数据方式推荐使用,也就是先创建,接着将挂载到容器上。...深入深入 上面对阐述更多是更多是从持久角度出发,而另一大作用就是“打通”容器文件系统和主机文件系统,使得容器里在指定目录下创建文件可以被宿主机访问到,也可以使得宿主机上指定目录下文件可以被容器里进程访问到

66810

Docker 基础知识 - 使用(volume)管理应用程序数据

(volumes)是 Docker 容器生产和使用持久数据首选机制。绑定挂载(bind mounts)依赖于主机目录结构,(volumes)完全由 Docker 管理。...绑定挂载相比有几个优势: 绑定挂载更容易备份或迁移。 您可以使用 Docker CLI 命令或 Docker API 来管理可以在 Linux 和 Windows 容器上工作。...此外,与将数据持久到容器可写层相比,通常是更好选择,因为不会增加使用容器大小,而且内容存在于给定容器生命周期之外。...使用驱动程序 当您使用 docker volume create 创建,或者当您启动使用尚未创建容器,可以指定一个驱动程序。...下面的示例使用 vieux/sshfs 驱动程序,首先在创建独立卷使用,然后在启动创建容器使用

3.2K11

Longhorn 云原生分布式块存储解决方案设计架构和概念

例如,如果您创建了一个 20 GB 使用10 GB,然后删除了 9 GB 内容,则磁盘上实际大小仍然是 10 GB 而不是 1 GB。...Longhorn 副本使用支持精简配置 Linux sparse files 构建。 2.3.1. 副本读写操作工作原理 从副本读取数据,如果可以在实时数据中找到数据,则使用该数据。...快照 快照功能使能够恢复到历史中某个点。辅助存储中备份也可以从快照构建。 从快照还原,它会反映创建快照状态。 快照功能也是 Longhorn 重建过程一部分。...备份工作原理 使用一个快照作为源创建备份,以便它反映创建快照数据状态。 与快照相比,备份可以被认为是一系列快照扁平版本。...Kubernetes 工作负载如何使用和现有的持久存储 从广义上讲,在 Kubernetes 中使用持久存储主要有两种方式: 使用现有的持久 动态配置新持久 现有存储配置 要使用现有 PV,

1.7K30

docker 系列:基础入门

镜像是一个模板文件,就像我们以前安装系统用到光盘,有了这张光盘,就可以随时将应用程序跑起来,而不需要自己手动构建应用程序所需要一切,因为它已经在镜像里安排明明白白了。...如果我们想要对数据进行持久,不随容器结束而结束,那我们需要将宿主机某一文件目录挂载到容器里,通过映射方法来实现 Docker 持久。...绑定挂载非常高效,但它们依赖于主机具有特定目录结构文件系统,比如从 Linux 切换为了 Windows,就会使用不了了。...tmpfs tmpfs 挂载 仅存储在主机系统内存中,不会持久保存在磁盘上。容器可以使用它来共享简单状态或非敏感信息。...但如果我们删除容器,并不会同时删除,如果想在删除容器也同时删除,则需要执行 docker rm -v my-vol 命令。

31440

剖析 Docker 持久数据存储底层原理

因为未持久数据容器根目录生命周期与容器生命周期一样,容器文件系统本质是在镜像层上面创建读写层,运行中容器对任何文件修改都存在于该读写层,当容器被删除,容器中读写层也会随之消失。...使用可以将容器内目录或文件持久,当容器重启后保证数据不丢失,例如我们可以使用将 MySQL 目录持久,实现容器重启数据库数据不丢失。...除了使用 docker volume create方式创建,我们还可以在 Docker 启动使用 -v 方式指定容器内需要被持久路径,Docker 会自动为我们创建,并且绑定到容器中,使用命令如下...使用数据 使用 docker volume创建在容器启动,添加 --mount 参数指定名称即可使用。...删除数据 容器删除并不会自动删除已经创建数据,因此不再使用数据需要我们手动删除,删除命令为 docker volume rm 。

1.5K60

Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)

容器服务4 创建Teamcity Agent代理服务7 连接和配置Agent9 创建项目以及配置CI10 使用TeamCity来完成内部CI、CD流程 ?...由于TeamCity这边需要使用到数据持久,那么在TKE中,我们如果实现容器服务持久呢?...), 也可以不填写源路径(对应KubernetesEmptyDir),不填写将分配主机临时目录挂载到容器挂载点,指定源路径本地硬盘数据适用于将数据持久存储到容器所在宿主机,EmptyDir...· NFS盘:可以使用腾讯云文件存储CFS, 也可使用自建文件存储NFS, 只需要填写NFS路径,使用NFS数据适用于多读多写持久存储,适用于大数据分析、媒体处理、内容管理等场景。...使用临时数据生命周期与实例生命周期保持一致。 4.数据挂载需要设置权限,默认设置为读写权限。 了解了这些,接下来实践我们使用本地硬盘和云硬盘来实现我们云端数据持久

1.7K10

Docker 入门笔记

以下部分内容节选并翻译自 https://docs.docker.com/storage/volumes/ (volumes)是持久由 Docker 容器产生和使用数据首选机制....相比绑定挂载, 有以下几个优点: 更加容易备份和迁移 可以使用 Docker CLI 命令或者 Docker API 来管理 在 Linux 和 Windows 系统均可工作 驱动允许将存储在远程主机或是云提供商..., 以加密内容或是添加其他功能 新可以由容器预填充内容 Docker Desktop 上比 Mac 和 Windows 宿主机上绑定挂载具有更高性能 绑定挂载 (bind mounts...创建和管理绑定挂载不同, 在容器外可以创建和管理....docker volume rm my-vol 启动一个带有容器 启动容器如果指定不存在, Docker 会自动创建这个.

1.1K20

猫头鹰深夜翻译:持久容器存储

持久场景下,冗余需求更加重要了,因为我们无法忍受任何数据丢失。 分布式 冗余持久驱动我们使用某种分布式策略,至少在磁盘层面上。但是我们还希望通过分布式存储来提高性能。...动态 容器架构持续变更。新版本不断构建,更新,应用被添加或是移除。测试用例被创建并启动,然后被删除。在这个架构下,需要能够动态配置和释放存储。...提供容器存储 为了满足容器持久存储需求,Kubernetes和Docker Swarm提供了一组声明式资源来声明并绑定持久存储至容器。这些持久存储功能构建与一些存储架构之上。...持久存储定义位于pod定义volumn字段下。该可以被挂在到pod任意一个容器下。比如,一下有一个KubernetesPod定义,它使用了一个emptyDir在容器间共享信息。...docker栈部署,Docker Swarm会创建web-files,仿佛它并不存在。

84750

Docker 命令大全

创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。 3. 进入容器 docker exec 参数 # 退出容器,容器不会关闭 4....概念 数据是宿主机中一个目录或文件 当容器目录和数据目录绑定后,对方修改会立即同步 一个数据可以被多个容器同时挂载 一个容器也可以被挂载多个数据 2....作用 容器数据持久 外部机器和容器间接通信 2. 配置数据 1. 配置方法 创建启动容器使用 –v 参数 设置数据 docker run ......通过-e覆盖 格式ENV name=value ARG 构建参数 构建参数 只在构建时候使用参数 如果有ENV 那么ENV相同名字值始终覆盖arg参数 VOLUME 定义外部可以挂载数据...-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udp WORKDIR 工作目录 指定容器内部工作目录 如果没有创建则自动创建 如果指定/ 使用是绝对地址 如果不是

53110
领券