当前位置: 首页 > 面试题库 >

在主机上的docker安装卷

唐威
2023-03-14
问题内容

我已经能够成功使用以下卷在Docker容器之间共享文件夹

docker run -v /host/path:/container/path ...

但是我的问题是,这与VOLUME在Dockerfile中使用命令之间有什么区别

VOLUME /path

我正在使用带有VOLUME命令的图像,并且想知道如何与主机共享它。我已经使用-v上面的命令完成了此操作,但我不知道是否同时需要-v和和VOLUME


问题答案:

VOLUME命令将在您的容器中安装一个目录,并将在该目录中创建或编辑的所有文件存储 在容器文件结构外部的 主机磁盘上,绕过联合文件系统。

这个想法是,您的卷可以在您的docker容器之间共享,并且只要存在引用它们的容器(正在运行或已停止),它们就会一直存在。

--volumes-from运行容器时,可以使用命令让其他容器安装现有卷(在容器之间有效地共享它们)。

VOLUME和之间的根本区别-v是:-v将来自操作系统的现有文件安装在Docker容器中,VOLUME并将在主机上 创建一个新的空卷
,并将其安装在容器中。

例:

  1. 您有一个定义了的Dockerfile VOLUME /var/lib/mysql
  2. 您构建Docker映像并对其进行标记 some-volume
  3. 您运行容器

然后,

  1. 您还有另一个要使用此卷的Docker映像
  2. 您使用以下命令运行docker容器: docker run --volumes-from some-volume docker-image-name:tag
  3. 现在您正在运行一个Docker容器,该容器将从中some-volume装入该卷/var/lib/mysql

注意:使用--volumes-from会将卷安装在卷位置上存在的任何位置上。即,如果您有东西/var/lib/mysql,它将被卷的内容替换。



 类似资料:
  • 如何在hostgator共享主机上安装laravel php框架PHP版本5.2-AddType application/x-httpd-php53.PHP in.htaccess文件 我的问题:无法使用SSH安装composer:$curl-sShttps://getcomposer.org/installer |php获取错误:缺少phar扩展。请在不禁用phar的情况下安装或重新编译php

  • 我在 Azure 虚拟机上安装 Docker 时遇到错误。 m/c 配置:Azure vm、Windows 10 企业版、英特尔 2.4 GHz、7 GB RAM、64 位操作系统、基于 x64 的处理器。我浏览了几个博客,他们要求我在 azure vm 上启用嵌套虚拟化,如下所示。 设置VMProcessor-VMName MobyLinuxVM-ExposeVirtualizationExte

  • 问题内容: 我有这些东西: 文件http://api.odtu.lu/composer.phar http://api.odtu.lu/phpinfo.php FTP访问 面板 FreeBSD上的Cron职位 PHP,Perl,CGI-BIN,Python,Curl。 如何安装Composer?(我的目的是安装Restler) 编辑:我没有SSH访问。 问题答案: 它取决于主机,但是您可能根本无法

  • 问题内容: Docker对我来说在Mac上运行良好,但是我必须在VirtualBox(或Parallels或VMWare Fusion)中运行docker主机,因为Mac的内核不支持docker。 所以我尝试在Ubuntu桌面上设置应用程序和docker-compose- 本机地,其中docker客户端和docker主机都物理上运行在同一系统上。这可行,但是我正在运行的Docker容器无法写入已安

  • 问题内容: 我在一台Macbook Pro笔记本电脑上运行 docker-machine(0.5.0) 和 docker-compose(1.5.0) 以启动我的容器。 这意味着我正在使用docker-machine创建我的virtualbox boot2docker驱动的HOST计算机,它将运行我的docker守护程序并托管我的所有容器。 我认为我缺少关于HOSTS和VOLUME概念的关键内容,