【问题标题】:docker compose volumes not contains filesdocker compose volumes 不包含文件
【发布时间】:2015-10-21 04:13:20
【问题描述】:

在添加volumes命令之前,容器构建并正常运行。我可以看到文件安装在容器的/var/www/html

但是,我想制作自定义代码,因此想将本地文件夹挂载到 /var/www/html

但是,当我启动容器(docker-compose up)时,没有文件被复制到我的本地文件夹中。

docker-compose.yml

web:
    image: wordpress
    links:
     - mysql
    environment:
     - WORDPRESS_DB_PASSWORD=rootpass
    ports:
     - "80:80"
    working_dir: /var/www/html
    volumes:
     - ./html:/var/www/html
mysql:
    image: mysql:5.7
    environment:
     - MYSQL_ROOT_PASSWORD=rootpass
     - MYSQL_DATABASE=wordpress

【问题讨论】:

  • 您希望在主机上看到哪些文件?除非您正在运行的容器将它们复制到卷中,否则不会有任何东西放入卷中。

标签: docker-compose


【解决方案1】:

您要查找的文件在哪里?在 ./html 中?如果容器内的 /var/www/html 中有文件,则在从主机挂载卷时它们将被隐藏。

我遇到的另一个问题是,如果您使用 docker-machine 连接到远程主机,文件必须在远程主机上而不是在本地工作站上。

【讨论】:

  • docker-machine 应该创建一个共享卷以允许您使用本地计算机上的文件,但我认为它默认只执行 /home/$USER 。您可以随时添加其他共享文件夹
  • 这可能是您的 VM 容器的一项功能。虚拟盒融合等。如果您使用的是 gcp 或数字海洋之类的东西,这不是常态。
  • 哦,你是对的。我认为它仅适用于 virtualbox 驱动程序。
  • 容器的/var/www/html中有一些php文件。但我想将它同步到本地文件夹/html,这样我就可以直接使用IDE工具对其进行编辑,并立即反映在容器中进行测试。如何让容器中的文件出现在挂载本地文件夹中?
  • 将它们从容器中复制到您的链接文件夹您也可以使用 docker inspect 找出文件在文件系统上的实际位置。您还在使用带有 boot2docker 或 docker 机器的虚拟化层吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 2019-08-07
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多