首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【第二部:容器和微服务架构】(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

50510
  • 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】WordPress 容器化部署

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

    37810

    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 镜像加速!

    3K41

    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 容器应用程序

    37110

    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:将本地文件目录拷贝到镜像的文件系统

    10510

    Docker数据管理

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

    1.3K10

    Docker看完即掌握

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

    56930

    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。

    2K30

    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

    19310

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

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

    57032

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

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

    3.5K11

    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.6K91

    Kubernetes | 存储 - Storage

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

    85830

    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 #进入容器目录

    65240

    锅总详解容器优化(一)

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

    8010

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

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

    2K00

    Docker容器实战:原理、架构与应用

    .定时复制技术节约存储空间,加速容器的启动时间, 6.数据是宿主机上的一个文件或者目录,启动容器时,会把这个文件目录挂载容器。...容器挂载 的数据数量没有限制 ,多个容器也可以挂载同一个数据 B.如何选择存储驱动 1.使用哪种存储驱动取决于用户在宿主机上使用何种文件系统,一些存储驱动可以工作在不同的后端文件系统上,另一些存储驱动必须使用相同的后端文件系统...3.安装需要的包 4.每个容器运行一个进程 5.减少镜像层 6.把多个参数排在不同的行 7.编译缓存:Docker Daemon从基础镜像编译出新的镜像;针对ADD和COPY指令,Docker...VOLUME指令导出这些文件和目录;容器会在主机的/var/lib/docker/volumes目录创建对应的目录挂载容器; 7.WORKDIR指令:设置Dockerfile其他指令的工作目录,...ONBUILD设置的指令 C.如何减小镜像体积 1.避免apt/yum update 2.每条指令都会生成一个镜像层,每个镜像层都会占用一些磁盘空间 3.应该在一条RUN指令,更新安装源、安装程序、清理缓存

    1.5K20
    领券