Tôi đã thêm một người dùng không root trong nhóm docker và một dịch vụ khác chạy khi người dùng không root này kết nối với daemon docker. nhưng dịch vụ không thể hoạt động. Tôi làm một ví dụ thử nghiệm cho điều này:
root@# systemctl start docker.service
root@# gpasswd -a tiger docker
tạo một dịch vụ systemd trong tiger:
[Service]
ExecStart=/home/tiger/connectdocker
Restart=always
StartLimitInterval=0
Delegate=true
KillMode=process
[Install]
WantedBy=default.target
các /home/tiger/connectdocker
như thế này:
docker run -itd busybox 2> connectdocker.log
bắt đầu dịch vụ này:
tiger@# systemctl --user enable connectdocker.service
tiger@# systemctl --user start connectdocker.service
và kết quả:
Thu Jul 21 00:59:15 CST 2016
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
nhưng tôi có thể kết nối với docker.sock với tiger:
tiger@# docker run -itd busybox
997e99f959cfd5500319935ec17677775da9d367d203a11efef8b42161c3ee64
để chứng minh rằng, tôi thay đổi /var/run/docker.sock
nhóm từ docker thành tiger và dịch vụ kết nối có thể kết nối với docker daemon.
thay đổi /var/run/docker.sock
:
ls -l /run/docker.sock
srw-rw---- 1 root docker 0 Jul 21 00:33 /run/docker.sock
đến:
ls -l /run/docker.sock
srw-rw---- 1 root tiger 0 Jul 21 00:33 /run/docker.sock