ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/_ping : dial unix /var/run/docker.sock: connect: permission denied
我尝试更改所有内容,从授予 sudo 权限到 docker.sock 并将 sock 权限更改为 666。 我知道这是一个安全问题。但权限更改会在每次系统重新启动时被覆盖。
我想要么保留许可。 或者修复 jenkins 容器和系统主机之间的 sock.connectivity 问题。
我尝试执行堆栈溢出必须提供的所有操作,但我无法将 sock 的权限保留为 666 或者直接解决问题而不将权限修改为 666。
我自己做了一个修复,每次重新启动时运行权限都是令人畏惧的,所以我更新了我的 crontab 来修复权限。
但是你们会感到惊讶,这也没有成功。 因为 docker.daemon 总是比你的机器启动得晚,并且出于安全考虑,它再次限制了权限。 经过多次撞击后,它得到了修复。
Until I did this thing.
I told my script to run once the docker daemon is already up and running.
So that the permissions are never overridden by docker daemon.
1.I created a small script under /usr/local/bin/dockersock-permissions.sh
setting up permissions.
2.Then I created permission.service under /etc/systemd/system/dockersock-permissions.service
3.sudo chmod +x /usr/local/bin/dockersock-permissions.sh
4.sudo systemctl enable dockersock-permissions.service
5.sudo systemctl start dockersock-permissions.service
and voila I never looked back again to that nasty error of the jenkins container not able to connect to docker.sock on host.
root@hanisntsolo-To-be-filled-by-O-E-M:/home/hanisntsolo# cat /etc/systemd/system/dockersock-permissions.service
[Unit]
Description=Set Docker Socket Permissions
After=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/dockersock-permissions.sh
[Service]
Type=oneshot
ExecStart=/bin/chmod 666 /var/run/docker.sock
[Install]
WantedBy=multi-user.target
root@hanisntsolo-To-be-filled-by-O-E-M:/home/hanisntsolo# cat /usr/local/bin/dockersock-permissions.sh
#!/bin/bash
chmod 666 /var/run/docker.sock
Lastly you can check if everything went fine with below ::
root@hanisntsolo-To-be-filled-by-O-E-M:/home/hanisntsolo# systemctl status dockersock-permissions.service
○ dockersock-permissions.service - Set Docker Socket Permissions
Loaded: loaded (/etc/systemd/system/dockersock-permissions.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2024-01-30 21:29:43 IST; 1h 13min ago
Process: 12435 ExecStart=/usr/local/bin/dockersock-permissions.sh (code=exited, status=0/SUCCESS)
Process: 12438 ExecStart=/bin/chmod 666 /var/run/docker.sock (code=exited, status=0/SUCCESS)
Main PID: 12438 (code=exited, status=0/SUCCESS)
CPU: 9ms
Jan 30 21:29:42 hanisntsolo-To-be-filled-by-O-E-M systemd[1]: Starting Set Docker Socket Permissions...
Jan 30 21:29:43 hanisntsolo-To-be-filled-by-O-E-M systemd[1]: dockersock-permissions.service: Deactivated successfully.
Jan 30 21:29:43 hanisntsolo-To-be-filled-by-O-E-M systemd[1]: Finished Set Docker Socket Permissions.