2016-04-11 28 views
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,但沒有幫助。

我該如何解決?

+0

這可能是捲曲版本問題。最近增加了對curl中的unix套接字的支持。應用程序代碼是否與bash使用相同的捲曲? –

+0

提及的PHP代碼不使用curl。我無法找到使用PHP curl與套接字的方法。 –

回答

0

請確保/ var/run對所有用戶和docker.sock具有r和x特權,並且docker.sock的模式爲0777

相關問題