簡體   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