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

应用程序二进制文件应该在挂载或卷中,还是应该只存在于docker容器中?

应用程序二进制文件应该存在于docker容器中。

在Docker中,应用程序二进制文件通常被打包到一个镜像中,并通过容器来运行。Docker镜像是一个轻量级、可移植的文件,其中包含了应用程序的所有依赖和运行环境。当容器启动时,Docker会使用镜像创建一个运行实例,该实例包含了应用程序的二进制文件以及其他必要的文件和配置。

将应用程序二进制文件放在挂载或卷中的主要目的是为了实现持久化存储和数据共享。挂载或卷可以将容器内的文件系统与宿主机或其他容器进行关联,使得应用程序可以读取和写入外部存储。这对于需要持久化存储数据或与其他容器共享数据的应用程序非常有用。

然而,对于应用程序的二进制文件本身来说,它们通常是不需要持久化存储的。应用程序的二进制文件是通过构建镜像时添加到镜像中的,每次容器启动时都会从镜像中加载。因此,将二进制文件放在挂载或卷中并不是必需的,而且可能会增加管理和部署的复杂性。

总结起来,应用程序的二进制文件应该存在于docker容器中,而不是放在挂载或卷中。这样可以简化部署和管理过程,并确保应用程序的可移植性和一致性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云容器服务(Tencent Kubernetes Engine,TKE):https://cloud.tencent.com/product/tke
  • 腾讯云容器镜像服务(Tencent Container Registry,TCR):https://cloud.tencent.com/product/tcr
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(Tencent Cloud Object Storage,COS):https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker挂载卷错误:无法在容器中访问主机文件

⌨ Docker挂载卷错误:无法在容器中访问主机文件 摘要 作为一位充满热情的技术博主,我深入研究了Docker容器中的挂载卷问题。...这个问题可能会导致数据丢失或应用程序运行失败。 在本文中,我们将深入研究这个问题,并提供详细的解决方案,以帮助您克服挂载卷错误,确保容器与主机文件系统正确交互。 正文 为什么要使用挂载卷?...这对于保存应用程序日志、数据库文件或其他重要数据非常重要。 2. 主机与容器之间的数据共享 挂载卷使主机文件系统中的文件和目录能够与容器共享。这允许容器访问主机上的配置文件、数据文件等。...常见挂载卷错误 在Docker中,以下是容器挂载卷可能出现的常见错误之一: 1. 无法访问主机文件 容器启动后,尝试访问主机上的挂载卷,但出现权限问题或找不到文件的错误。...通过正确配置这些因素,您可以避免常见的挂载卷错误,确保应用程序在Docker容器中运行顺利。

20310

【第二部:容器和微服务架构】(3)Docker应用程序中的状态和数据

您应该假设容器映像(如进程)具有多个实例,或者最终将被终止。如果它们是由容器编排器管理的,则应该假设它们可能会从一个节点或VM移动到另一个节点或VM。...以下解决方案用于管理Docker应用程序中的数据: 从Docker主机,作为Docker卷: 卷存储在Docker管理的主机文件系统的一个区域中。...绑定挂载可以映射到主机文件系统中的任何文件夹,因此无法从Docker进程控制访问,并且由于容器可以访问敏感的OS文件夹,因此可能会带来安全风险。...tmpfs挂载就像虚拟文件夹,只存在于主机的内存中,从不写入文件系统。 从远程存储: Azure存储提供了地理分布存储,为容器提供了一个良好的长期持久性解决方案。...因此,虽然可以将容器的状态保存在其本地存储中,但围绕此设计系统将与容器设计的前提冲突,容器设计的前提默认为无状态。 不过,使用Docker卷现在是处理Docker中本地数据的首选方法。

73031
  • 重学Docker

    是共享) Bins/Libs (命令/资源):二进制命令和资源库 APP (应用程序):用户安装的程序 缺点:要运行几个隔离的应用,就要监视器启动几个宿主系统,也就是几个虚拟机。...6.2 Docker Docker是运行容器的引擎,我们将 操作系统的基础库文件、应用程序、所需的依赖等打包到镜像中,然后通过镜像创建容器(类和对象),而容器就在Docker中运行 ?...数据卷 数据卷(volume)是由docker挂载到容器(不属于UFS)存在于一个或多个容器中的目录或文件,因此能绕过UFS一些用于持续存储或共享数据的特性 卷的出现是为了数据的持久化和同步操作,其完全独立于容器的生存周期...简单来说:使容器和宿主机共享独立于docker生命周期的数据、亦或者:独立于docker生命周期的目录挂载 特点: 数据卷可以容器之间共享或重用 卷中的更改直接生效 卷中的更改不会包含在镜像的更新中 数据卷的生命周期持续到没有容器使用为止...write dockerfile----" $ CMD /bin/bash 9.3 容器数据卷 容器数据卷是用于容器间的数据共享,操作方式还是命令行: --volume-from # centos01

    52310

    【Docker】WordPress 容器化部署

    为了避免这种数据丢失,您应该安装一个即使在容器被删除后仍然存在的卷。为了持久化,您应该在路径上安装一个目录/bitnami/wordpress。如果挂载的目录为空,则首次运行时会对其进行初始化。...此外,您应该安装一个卷来持久保存 MariaDB 数据。mariadb_data上面的示例定义了名为和 的Docker 卷wordpress_data。...只要不删除卷,WordPress 应用程序状态就会持续存在。为了避免无意中删除卷,您可以将主机目录挂载为数据卷。或者,您可以使用卷插件来托管卷数据。...使用 Docker Compose 将主机目录挂载为数据卷 mariadb: ......daemon 当您启动 WordPress 映像时,您可以通过在 docker-compose 文件或命令行上传递一个或多个环境变量来调整实例的配置

    45410

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

    与直接写入主机文件系统相比,这种额外的抽象降低了性能 。 因此,如果我们使用容器命令docker rm删除了容器,那么容器中的所有内容均将丢失,包括 SQL Server 和数据库文件。...使用数据卷持久保存数据库文件 卷是保存Docker容器中的数据的首选机制。虽然绑定挂载依赖于主机的目录结构,但卷完全由Docker管理。主要有如下好处: · 易于备份或迁移。...· 可以使用Docker CLI命令或Docker API管理卷。 · 适用于Linux和Windows容器。 · 可以在多个容器之间更安全地共享卷。...因此,通常情况下,卷相对于容器的可写层中的持久数据来说是更好的选择,因为卷不会增加容器的大小,并且卷的内容存在于给定容器的生命周期之外。接下来,我们就一起来实践。 ?...\ -v /temp/data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2017-latest 注意:-v参数应该在-d参数之前。

    1.4K30

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

    与直接写入主机文件系统相比,这种额外的抽象降低了性能 。 因此,如果我们使用容器命令docker rm删除了容器,那么容器中的所有内容均将丢失,包括 SQL Server 和数据库文件。...使用数据卷持久保存数据库文件 卷是保存Docker容器中的数据的首选机制。虽然绑定挂载依赖于主机的目录结构,但卷完全由Docker管理。主要有如下好处: · 易于备份或迁移。...· 可以使用Docker CLI命令或Docker API管理卷。 · 适用于Linux和Windows容器。 · 可以在多个容器之间更安全地共享卷。...因此,通常情况下,卷相对于容器的可写层中的持久数据来说是更好的选择,因为卷不会增加容器的大小,并且卷的内容存在于给定容器的生命周期之外。接下来,我们就一起来实践。 ?...\ -v /temp/data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2017-latest 注意:-v参数应该在-d参数之前。

    1.9K20

    如何优雅地使用 Docker

    上面有提到应该尽可能使用&来连接命令。以apt install为例,尽管大部分情况下可以直接下载二进制文件,但是某些程序可能需要本地编译,从而产生很多中间缓存的文件。...(目录挂载) 在 Docker 中,存储卷(volume)或者说宿主机文件/目录挂载实际上是一个东西——将宿主机的特定文件夹/文件挂载到容器中,以方便容器内部读写。...唯一的不同在于,目录挂载对应的宿主机目录往往是用户指定的,而存储卷存放于 Docker 指定的特殊权限目录(可能在/var/lib/docker/volumes) 由于前面提到容器应该是无状态的,因此所有持久化的数据应该被存放在存储卷中...这很好理解,容器可能会被删除,甚至 Docker 都可能会被删除,但是起码宿主机本身的文件夹还是较为安全的。 存储卷中文件的状态将和容器内部完全一致。...因此建议只在测试环境或局域网中开放远程连接。 在这之后,即可在另一台电脑使用 IP 和端口进行远程连接了。 docker_3.png 镜像加速!

    3.1K41

    Docker从入门到精通:Docker 容器数据卷详解

    本文将介绍 Docker 容器数据卷的基本概念、用法以及一些实用技巧。什么是 Docker 容器数据卷?Docker 容器数据卷是一个可用于存储数据的特殊目录,存在于一个或多个容器的指定位置。...in/container my_image使用数据卷在容器中挂载数据卷可以在容器启动时将数据卷挂载到容器的指定路径:docker run -v my_volume:/data my_image这将把名为...my_volume 的数据卷挂载到容器内的 /data 目录,容器可以读写这个目录中的数据。...在 Dockerfile 中定义数据卷VOLUME /var/lib/data这将在构建镜像时定义一个数据卷,当容器启动时,可以使用 -v参数将数据卷挂载到容器中。...数据卷是 Docker 中重要的持久化存储解决方案,可用于多种场景,包括数据共享、持久化存储和备份等。通过合理使用数据卷,可以更好地管理和运维 Docker 容器化应用程序。

    50310

    Kubernetes 存储概念之Volumes介绍

    Docker的卷只是磁盘、其它容器中的一个目录,功能也比较有限。 Kubernetes支持多种类型的卷。pod可以同时使用任意数量、类型的卷。...存储在ConfigMap中的数据可以被configMap卷引用,然后由运行在pod中的容器化应用程序使用 引用ConfigMap时,需要在卷中提供ConfigMap的名称。...Pod 中的所有容器可以读取和写入 emptyDir 卷中的相同文件,尽管该卷可以挂载到每个容器中相同或不同的路径上。当出于任何原因从节点中删除 Pod 时,emptyDir 中的数据将被永久删除。...如果通过许可策略限制Hostpath对特定目录的访问,则必须要求volumeMounts使用readOnly装载才能使策略生效 hostPath 卷将主机节点的文件系统中的文件或目录挂载到Pod中。...允许 Pod 指定给定的 hostPath 是否应该在 pod 运行之前存在,是否应该创建,以及它应该以什么形式存在 除了所需的 path 属性之外,用户还可以为 hostPath 卷指定 type。

    2.1K30

    ​Docker数据管理

    ;(2)当宿主机不能保证一定存在某个目录或一些固定路径的文件时,使用数据卷可以规避这种限制带来的问题;(3)开发者想把容器中的数据存储在宿主机之外的地方,如远程主机或云存储;(4)开发者需要把容器数据在不同的宿主机之间备份...(3)tmpfs,这是临时数据卷,只会存在于宿主机的内存中,不会写入宿主机的文件系统内。 以上三种方式的挂载示意图如下所示: ?...当开发者需要将宿主机内的某个文件作为volume挂载到容器中时,那么该文件必须存在于宿主机内,否则无法挂载,因为Docker默认是支持目录挂载。...举个例子,开发者想将当前目录下的hello.txt文件挂载到容器别名为envy的/opt目录下,此时命令应该为: [root@envythink ~]# docker run -it -d --name...在实际工作中也可能出现某些数据只是作为中间产物而存在的,我们是不希望它能保存在宿主机或者容器中,此时就可以创建tmpfs类型的数据卷,该数据卷中的数据只存在于内存中,容器退出后会自动删除,这样就很好的解决了我们的问题

    1.3K10

    Docker技术仓库

    容器与主机之间、容器与容器之间共享文件 容器中数据的持久化 将容器中的数据备份、迁移、恢复等  数据卷的特点  数据卷存在于宿主机的文件系统中,独立于容器,和容器的生命周期是分离的。...数据卷管理 Docker挂载容器数据卷的三种方式 bind mounts:将宿主机上的一个文件或目录被挂载到容器上。 volumes:由Docker创建和管理。...bind mounts方式挂载数据卷 利用docker run/create的参数为容器挂载数据卷 --mount参数           --mount type=bind, src=宿主机文件或文件夹路径..., dst=容器中的文件或者文件夹路径   volumes方式挂载数据卷 --mount 参数          --mount type=volume, src=VOLUME-NAME, dst=容器中的文件或者文件夹路径...ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效 ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失 ADD:将本地文件或目录拷贝到镜像的文件系统中。

    10710

    Docker看完即掌握

    qiu 镜像名|镜像ID 推荐直接使用:docker run -itd --name qiu 镜像名|镜像ID ◆ 八.数据卷 ◆ (1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹,...这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中 ◆ (2)解决了什么问题?...查看共享数据文件,发现数据在容器中同步 ◆ (9)数据的持久化 首先删除容器 然后在宿主机修改共享数据 接着重新创建容器并挂载数据卷 发现数据在容器中恢复 ◆ (10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷....Docker 基本命令 (2)Docker服务相关命令 (3)Docker 镜像命令(docker官方镜像网站) (4)容器操作 八.数据卷 (1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹...,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中 (2)解决了什么问题?

    58530

    Docker容器和Kubernetes集群的概念

    最后,该容器用 /app/main 命令启动应用程序。 1.2 挂载卷 当我们在 Docker 中运行 Golang 应用程序时,我们通常希望容器与宿主机共享数据。这可以通过使用挂载卷来实现。...挂载卷是一个特殊的目录,它可以在容器和宿主机之间共享,并保留了其中的任何修改。...例如,我们可以将 Golang 应用程序编译成一个静态二进制文件,在容器启动时将其挂载到容器内部运行: docker run -v /path/to/binary:/app/main my-golang-app...这将启动一个名为 my-golang-app 的 Docker 容器,并将 /path/to/binary 目录中的二进制文件挂载到容器的 /app/main 路径下。...在第一阶段中,我们使用 Golang 镜像来编译应用程序,并将二进制文件输出到 /go/src/app/main 中。

    20310

    Docker基础:数据卷技术介绍

    1.2 Docker数据持久化Docker数据持久化就是容器中的数据不会随着容器的结束而随之结束,在Docker中如果需要实现数据的持久化,前提把数据从Docker容器挂载到宿主主机上去。...2.1 数据卷作用容器的持久化、容器间继承 + 共享数据2.2 卷的概念本质就是目录或文件,存在于一个或多个容器中,由docker挂载到容器中,但不属于联合文件系统,因此能够绕过合文件系统提供一些用于持续存储或共享数据的特性...卷的目的就是实现数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时同时删除其挂载的数据卷。...2.3 数据卷的特点数据卷可以在容器之间实现共享和重用,容器间传递数据将变的高效方便对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作对数据卷的更新不会影响Docker镜像,解耦了应用和数据数据卷的生命令周期不受容器的影响...docker volume inspect myvolume数据卷新增文件并查看容器内挂载的目录文件是否同步cd /var/lib/docker/volumes/myvolume/_data #进入容器卷目录

    67340

    Docker 入门,学明白这一篇就够啦

    容器:Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。...所有对容器的改动,无论添加、删除、还是修改文件都只会发生在容器层中。 ---- 镜像仓库 && 推送镜像到仓库 等到了工作岗位,你的导师会教你怎么用你们公司的镜像仓库的。...卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性。...演示步骤: 1、确定容器未启动 2、在宿主机的挂载路径下新建文件 3、启动容器并挂载 4、查看文件是否出现在容器中 敲错命令了。。。mkdir 是创建目录。。。...演示步骤: 1、确定容器已启动 2、在宿主机的挂载路径下新建文件 3、查看文件是否出现在容器中 由此可见,这个容器卷可不仅仅是一个数据持久化的工具哦,它是可以双向通信的。

    58132

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

    卷与绑定挂载相比有几个优势: 卷比绑定挂载更容易备份或迁移。 您可以使用 Docker CLI 命令或 Docker API 来管理卷。 卷可以在 Linux 和 Windows 容器上工作。...对于命名卷,第一个字段是卷的名称,在给定的主机上是惟一的。对于匿名卷,省略第一个字段。 第二个字段是容器中文件或目录挂载的路径。 第三个字段是可选的,是一个逗号分隔的选项列表,比如 ro。...§使用容器填充卷 如果您启动了一个创建新卷的容器,如上所述,并且该容器在要挂载的目录(例如上面的 /app/)中有文件或目录,那么该目录的内容将复制到新卷中。...另一个方法是使用支持将文件写入外部存储系统(如 NFS 或 Amazon S3)的驱动程序来创建卷。 卷驱动程序使您可以从应用程序逻辑中抽象底层存储系统。...dbstore 容器挂载卷 挂载一个本地主机目录作为 /backup 传递一个命令,将 /dbdata 卷的内容压缩到目录 /backup 中的 backup.tar 文件。

    3.7K11

    Kubernetes | 存储 - Storage

    ConfigMap 描述信息 ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。...正如卷的名字所述,它最初是空的。Pod 中的容器可以读取和写入 emptyDir 卷中的相同文件,尽管该卷可以挂载到每个容器中的相同或不同路径上。...name: cache-volume volumes: - name: cache-volume emptyDir: {} hostPath hostPath 卷将主机节点的文件系统中的文件或目录挂载到集群中...允许 pod 指定给定的 hostPath 是否应该在 pod 运行之前存在,是否应该创建,以及它应该以什么形式存在。...在底层主机上创建的文件或目录只能由 root 写入。您需要在特权容器中以 root 身份运行进程,或修改主机上的文件权限以便写入 hostPath 卷。

    86130

    Docker for Devs:创建一个开发版镜像

    步骤3b:列出镜像 运行 docker images,我们可以看到所有运行着的新旧镜像: image.png 步骤4:生成并运行挂载数据卷(Volume)的容器 我们现在有一个镜像,代表我们的应用程序的开发版本...现在,我们想在运行那个容器的同时,挂载数据卷(Volume)。 一直以来,您可能一直在想如何编辑源代码,并且如果源代码驻留在容器中,它会反映在正在运行的容器中,对吗?...简而言之,数据卷是存在于 Union File System 之外的目录或文件,通常位于主机文件系统上。...但是,您可以使用 docker remove(rm)指定 -v 标志来删除关联卷: docker rm -v [容器的名称或ID]。...你应该注意到,当我们连接到容器时,我们将自动连接到正在工作的 WORKDIR 目录。 我们使用 list 命令ls -l来显示目录内容实际上显示了本地卷挂载主机目录的内容。

    1.7K91

    锅总详解容器优化(一)

    非持久性:默认情况下,当容器停止或删除时,可读写层中的所有更改都会丢失。要持久化数据,需要使用 Docker 卷(Volumes)或绑定挂载(Bind Mounts)。...容器文件系统操作流程 文件读操作: 当容器读取文件时,Docker 会从可读写层开始查找文件。如果文件存在于可读写层中,直接读取。...运行时状态 进程状态:容器内正在运行的进程状态不会被保存。docker commit 只保存容器文件系统的快照,不包括运行时的进程或内存状态。...容器日志 日志文件:容器内的应用日志或系统日志文件不会被保存到镜像中。日志通常存储在容器内的文件系统中或由 Docker 的日志驱动程序管理。 4....挂载卷(Volumes) 卷数据:与容器挂载的卷(Volumes)相关的数据不会被保存。卷用于持久化容器的数据,挂载的卷在容器重新创建后仍然存在,但这些数据不会被包含在新的镜像中。 5.

    8310

    Docker 基础知识 - 使用绑定挂载(bind mounts)管理应用程序数据

    绑定挂载(bind mounts)在 Docker 的早期就已经出现了。与卷相比,绑定挂载的功能有限。当您使用绑定挂载时,主机上的文件或目录将挂载到容器中。文件或目录由其在主机上的完整或相对路径引用。...相反地,当您使用卷时,在主机上 Docker 的存储目录中创建一个新目录,Docker 管理该目录的内容。 该文件或目录不需要已经存在于 Docker 主机上。如果还不存在,则按需创建。...绑定挂载的性能非常好,但它们依赖于主机的文件系统,该文件系统具有特定的可用目录结构。如果您正在开发新的 Docker 应用程序,请考虑改用命名卷。...对于绑定挂载(bind mounts), 第一个字段是主机上文件或目录的路径。 第二个字段是容器中文件或目录挂载的路径。...配置 selinux 标签 如果使用 selinux ,则可以添加 z 或 Z 选项,以修改挂载到容器中的主机文件或目录的 selinux 标签。

    2.2K00
    领券