0
我使用泊塢的Windows工具箱無法連接到UNIX:從PHP代碼///var/run/docker.sock(拒絕)
我創建了PHP-FPM泊塢窗容器:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock php:7.0-fpm-alpine
如果我使用捲曲直接從容器外殼:
curl --unix-socket /var/run/docker.sock http://containers/json
我得到正確的答案。
但是,如果使用PHP代碼:
$socket = stream_socket_client('unix:///var/run/docker.sock', $errno, $errstr);
if ($socket){
$request = 'GET /version HTTP/1.1'."\r\n";
$request.= 'Connection: Close'."\r\n\r\n";
fwrite($socket,$request);
$response = stream_get_contents($socket);
fclose($socket);
print_r($response);
}
else {
print_r($errstr);
}
然後我得到了以下錯誤:
警告:stream_socket_client():無法連接到UNIX:/// var/run中/泊塢窗。襪子(權限被拒絕)
PHP在www數據用戶下工作。我試圖在根目錄下運行PHP-FPM,但得到了PHP-FPM錯誤,我無法在根目錄下運行php。
我試圖在容器內創建「docker」用戶/組,然後在「docker」用戶/組下運行PHP-FPM,但沒有幫助。
我該如何解決?
這可能是捲曲版本問題。最近增加了對curl中的unix套接字的支持。應用程序代碼是否與bash使用相同的捲曲? –
提及的PHP代碼不使用curl。我無法找到使用PHP curl與套接字的方法。 –