繁体   English   中英

通过php访问docker容器内的文件

[英]Access files inside docker container over php

我在docker上安装了jboss服务器,并且尝试通过php检查音频文件是否已保存。 如果文件存在,我想将其复制到本地计算机。

  $location = shell_exec('docker exec -it  name3 /bin/bash -c cd .**********; ls');
  $filepath = $location;
  if (file_exists($filepath)) {
       //copy that file to local machine 
   } 
  echo $filepath;

但是对于$ location,我在htdocs(xampp)中获得了文件夹。 是否可以通过php访问docker容器中的文件(位于本地服务器上)?

您可以使用docker cp告诉docker将您的文件从容器复制到本地计算机

docker cp <containerId>:/file/path/within/container /host/path/target

要获取containerId您可以运行

docker ps

如果我理解正确,则PHP正在本地计算机上运行,​​并且您要检查正在运行的Docker容器中是否存在文件。

不管PHP是否可以访问doc根目录之外的文件系统部分,或者是否有权执行shell命令(均出于安全考虑),我仍将使用其他方法。

  • 使用泊坞窗卷存储记录。
  • 将卷安装在要检查的路径上-即/opt/Restcomm-JBoss-AS7/standalone/deployments/restcomm.war/recordings/
  • 将Docker卷的主机路径设置为PHP对文件系统具有读取访问权限的位置
  • 使用PHP可以检查文件是否存在,而无需使用任何Shell命令。 例如https://secure.php.net/manual/en/function.file-exists.php

请注意,通过这种方式,您的录制内容还将在docker容器重启/崩溃期间持续存在 ,我想这很重要...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM