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

在主机上增加docker卷(可能通过docker-compose)

太叔鸿
2023-03-14
问题内容

我有下面的例子

version: '2'

services:
  proxy:
    container_name: proxy
    hostname: proxy
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - proxy_conf:/etc/nginx
      - proxy_htdocs:/usr/share/nginx/html

volumes:
  proxy_conf: {}
  proxy_htdocs: {}

效果很好。当我运行docker-compose up它时,在其中创建那些命名的卷/var/lib/docker/volumes,一切都很好。但是,从主机上,我只能/var/lib/docker以root
用户身份访问,因为它是root:root(有意义的)。我想知道是否有一种方法可以chown将主机的目录设置为更明智/更安全的目录(例如,我用来在主机上执行大多数操作的相对没有特权的用户),或者我是否只需要chown手动将其吸干。我已经开始有许多脚本可以解决其他问题,因此多行几行不会有太大问题,但是如果我愿意的话,我真的想保持自己的自动化程度最小可以-
减少愚蠢错误的机会。

顺便说一句,否:如果我挂载主机目录而不创建卷,它们将被覆盖,这意味着如果它们开始为空,它们将保持为空,并且我不会从容器内部获得默认配置(或其他任何内容)。

要点:我可以将卷移动到更方便的位置吗?再说了,/home/myuser/myserverstuff/volumes


问题答案:

最好不要尝试/var/lib/docker直接访问内部文件。这些目录本应由docker守护程序管理,而不是被弄乱。

要访问卷内的数据,有许多选择。

  • 使用绑定安装的目录(您曾考虑过,但不适合您的用例)。
  • 使用使用相同卷并使其可通过该容器访问的“服务”容器,例如运行ssh(使用scp)的容器或SAMBA容器(例如svendowideit / samba)
  • 使用音量驱动程序插件。周围有各种各样的插件可以提供各种选择。例如,本地持久插件是一个非常简单的插件,可让您指定docker应该 在何处 存储卷数据(位于之外/var/lib/docker


 类似资料:
  • 问题内容: 我已经能够成功使用以下卷在Docker容器之间共享文件夹 但是我的问题是,这与在Dockerfile中使用命令之间有什么区别 我正在使用带有命令的图像,并且想知道如何与主机共享它。我已经使用上面的命令完成了此操作,但我不知道是否同时需要和和。 问题答案: 该命令将在您的容器中安装一个目录,并将在该目录中创建或编辑的所有文件存储 在容器文件结构外部的 主机磁盘上,绕过联合文件系统。 这个

  • 我正在使用docker compose运行一个测试环境,该环境由大约5个不同的容器组成。容器间的链接和共享卷(来自的卷)工作得非常好。我还向主机暴露了一些端口,这很好地工作。 我缺少的是一种将我的一些真实服务器链接到这个环境中的方法,而不需要硬编码ip地址。使用,您可以使用在您的文件中添加另一行。是否有任何方法可以使用docker-comush做类似的事情?

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

  • 我在一台Macbook Pro笔记本电脑上运行docker-machine(0.5.0)和docker-compose(1.5.0)来启动我的容器。 这意味着我正在使用docker-machine创建我的virtualbox boot2docker驱动的主机,它将运行我的docker守护进程并托管我的所有容器。 我想我遗漏了主机和卷概念的一些关键内容,因为它们引用了Docker和文档。 这是我的d

  • 问题内容: 我刚刚检查了/ var / lib / docker / volumes文件夹,发现该文件夹正以名为Docker UUID的文件夹爆炸,每个文件夹都包含一个config.json文件,其内容与 哪里 是指向主机上的文件夹的路径,该主机已通过-v开关挂载到Docker容器上。我有这样的文件夹可以追溯到我对Docker进行实验的开始,即大约3周前。 有问题的容器很久以前就已停止并且dock