• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Forwarded to devs [Docker] Error: Permission denied

Sysop

Basic Pleskian
I'm running a newly provisioned server with AlmaLinux 9.3 installed the Plesk Docker Extension, although attempting to open it I get a permission denied error:

Error: Permission denied

I've done:

Code:
plesk repair installation -y -v
Code:
plesk repair all -y -v

There were no errors, so I'm at a loss and what to do to get it working. I also have a Plesk Docker Remote Node License which I cannot use now either.
 
Could you please provide the output of these two console commands:
# grep docker /etc/group
# ls -ld /var/run/docker.sock
 
Could you please provide the output of these two console commands:
# grep docker /etc/group
# ls -ld /var/run/docker.sock

# grep docker /etc/group
Code:
docker:x:981:psaadm

# ls -ld /var/run/docker.sock
Code:
srw-rw----. 1 root docker 0 Nov 16 16:27 /var/run/docker.sock

This is the Plesk Exception log:
PleskExt\Docker\Exceptions\ServiceUnavailableException: Permission denied
file: /usr/local/psa/admin/plib/modules/docker/library/Docker/Client.php
line: 53
code: 0
trace: #0 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpClientDecorator.php(27): PleskExt\Docker\Client->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#1 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpAsyncClientEmulator.php(31): PleskDocker\Http\Client\Common\EmulatedHttpAsyncClient->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#2 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpAsyncClientDecorator.php(26): PleskDocker\Http\Client\Common\EmulatedHttpAsyncClient->sendAsyncRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#3 /usr/local/psa/admin/plib/modules/docker/vendor/docker-php/docker-php/generated/Resource/ContainerResource.php(40): PleskDocker\Http\Client\Common\FlexibleHttpClient->sendAsyncRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#4 /usr/local/psa/admin/plib/modules/docker/library/Docker/FindAllContainersTrait.php(15): PleskDocker\Docker\API\Resource\ContainerResource->findAll(array)
#5 /usr/local/psa/admin/plib/modules/docker/controllers/IndexController.php(89): IndexController::findAllContainers(object of type PleskDocker\Docker\Manager\ContainerManager)
#6 /usr/local/psa/admin/plib/modules/docker/controllers/IndexController.php(72): IndexController->_getContainers()
#7 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Action.php(516): IndexController->listAction()
#8 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch(string 'listAction')
#9 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(object of type Zend_Controller_Request_Http, object of type Zend_Controller_Response_Http)
#10 /usr/local/psa/admin/plib/pm/Application.php(91): Zend_Controller_Front->dispatch()
#11 /usr/local/psa/admin/htdocs/modules/docker/index.php(5): pm_Application->run()
--
#0 /usr/local/psa/admin/plib/modules/docker/vendor/docker-php/docker-php/src/SocketClient/Client.php(61): PleskDocker\Docker\SocketClient\Client->createSocket(object of type PleskDocker\GuzzleHttp\Psr7\Request, string 'unix:///var/run/docker.sock', boolean false)
#1 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpClientDecorator.php(27): PleskDocker\Docker\SocketClient\Client->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#2 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginClient.php(71): PleskDocker\Http\Client\Common\EmulatedHttpAsyncClient->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#3 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/Plugin/DecoderPlugin.php(55): PleskDocker\Http\Client\Common\PluginClient->PleskDocker\Http\Client\Common\{closure}(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#4 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginChain.php(37): PleskDocker\Http\Client\Common\Plugin\DecoderPlugin->handleRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request, object of type Closure, object of type PleskDocker\Http\Client\Common\PluginChain)
#5 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/Plugin/ContentLengthPlugin.php(33): PleskDocker\Http\Client\Common\PluginChain->PleskDocker\Http\Client\Common\{closure}(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#6 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginChain.php(37): PleskDocker\Http\Client\Common\Plugin\ContentLengthPlugin->handleRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request, object of type Closure, object of type PleskDocker\Http\Client\Common\PluginChain)
#7 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/Plugin/ErrorPlugin.php(55): PleskDocker\Http\Client\Common\PluginChain->PleskDocker\Http\Client\Common\{closure}(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#8 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginChain.php(37): PleskDocker\Http\Client\Common\Plugin\ErrorPlugin->handleRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request, object of type Closure, object of type PleskDocker\Http\Client\Common\PluginChain)
#9 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginChain.php(48): PleskDocker\Http\Client\Common\PluginChain->PleskDocker\Http\Client\Common\{closure}(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#10 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/PluginClient.php(76): PleskDocker\Http\Client\Common\PluginChain->__invoke(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#11 /usr/local/psa/admin/plib/modules/docker/library/Docker/Client.php(51): PleskDocker\Http\Client\Common\PluginClient->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#12 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpClientDecorator.php(27): PleskExt\Docker\Client->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#13 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpAsyncClientEmulator.php(31): PleskDocker\Http\Client\Common\EmulatedHttpAsyncClient->sendRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#14 /usr/local/psa/admin/plib/modules/docker/vendor/php-http/client-common/src/HttpAsyncClientDecorator.php(26): PleskDocker\Http\Client\Common\EmulatedHttpAsyncClient->sendAsyncRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#15 /usr/local/psa/admin/plib/modules/docker/vendor/docker-php/docker-php/generated/Resource/ContainerResource.php(40): PleskDocker\Http\Client\Common\FlexibleHttpClient->sendAsyncRequest(object of type PleskDocker\GuzzleHttp\Psr7\Request)
#16 /usr/local/psa/admin/plib/modules/docker/library/Docker/FindAllContainersTrait.php(15): PleskDocker\Docker\API\Resource\ContainerResource->findAll(array)
#17 /usr/local/psa/admin/plib/modules/docker/controllers/IndexController.php(89): IndexController::findAllContainers(object of type PleskDocker\Docker\Manager\ContainerManager)
#18 /usr/local/psa/admin/plib/modules/docker/controllers/IndexController.php(72): IndexController->_getContainers()
#19 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Action.php(516): IndexController->listAction()
#20 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch(string 'listAction')
#21 /usr/local/psa/admin/plib/vendor/plesk/zf1/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(object of type Zend_Controller_Request_Http, object of type Zend_Controller_Response_Http)
#22 /usr/local/psa/admin/plib/pm/Application.php(91): Zend_Controller_Front->dispatch()
#23 /usr/local/psa/admin/htdocs/modules/docker/index.php(5): pm_Application->run()

Are Docker Images still not available to use through AlmaLinux 9.x? Thanks
 
To me the output looks good. Could you please run
# systemctl restart docker && systemctl restart sw-engine
and then try to open Docker again in GUI?
 
Oh shoots, I all forgot about the Alma 9 limit:
"Docker is currently not available. Further implementation will be announced in the Plesk Change Log."
Do you know why it's not available? Almalinux 9 has been out for a while, and seems like it should be doable. If it's not possible to use Docker in Almalinux 9 then I would say Plesk should remove the option to install the extension.

Are there any alternate suggestions perhaps that you would recommend I look into for running Docker on Plesk w/Almalinux 9.x? Thanks
 
I am using Docker on Almalinux 9.3. These are the steps I followed:

We install necessary packages
sudo dnf -y install device-mapper-persistent-data lvm2

Install Docker
The best version for dependencies
sudo dnf install docker-ce --nobest -y

Enable Docker on the system
sudo systemctl start docker
sudo systemctl enable docker

Add permissions to the Docker group
sudo usermod -aG docker psaadm

Apply changes to Docker
newgrp docker

Install Docker plugin
plesk bin extension --install docker

If docker still doesn't work we uninstall and reinstall again
plesk bin extension --uninstall docker
plesk bin extension --install docker

Now I have plesk with docker working perfectly. As soon as plesk implements it I uninstall docker, remove the repository added by me, and install it through plesk.
 
I've filed a product issue that Docker should not be installable from the extensions page in the first place as we do not officially support in on Alma 9 yet. Internal ID PPS-15234.

@ivanes82 Thank you for offering this workaround for users who want to use Docker on their Alma 9 installations.
 
Hi,

Just an update, currently, the Docker extension can't automatically install the Docker service on AlmaLinux 9.x, but since version 1.8.4, the extension can be installed on Plesk on AlmaLinux 9.x,
  • If the extension detects a local docker service, it will be able to manage local Docker service as well as remote nodes. If you want to manage local Docker service, just be sure that it is installed and running; or install the Docker service before installing the Docker extension in Plesk.
  • If the extension does not detect a local docker service, it provides ability to manage remote nodes only.
    Note: managing remote nodes requires a paid license for the extension.
 
Unfortunately since the new update I have not been able to get docker running on plesk. I thought it was intentional. Luckily I had a backup of the docker extension and only with this one it still works. I installed it manually, and disabled automatic updates so it won't update because it doesn't work. The error is: The execution of post-install.php has failed with the following message:
[2023-12-14 05:30:54.712] 1614428:6579ff66ad2f9 ERR [extension/docker] Execution installer has failed with exit code 1, stdout: , stderr: The extension does not support installation of local Docker packages on AlmaLinux 9. Please manually install Docker on this server or use a remote one.
 
Back
Top