dockerグループに非rootユーザーを追加し、この非rootユーザーがdockerデーモンに接続すると、他のサービスが実行されました。しかし、サービスは機能しません。私はこれのテスト例を行います:
root@# systemctl start docker.service
root@# gpasswd -a tiger docker
tigerでsystemdサービスを作成します。
[Service]
ExecStart=/home/tiger/connectdocker
Restart=always
StartLimitInterval=0
Delegate=true
KillMode=process
[Install]
WantedBy=default.target
この/home/tiger/connectdocker
ような:
docker run -itd busybox 2> connectdocker.log
このサービスを開始します。
tiger@# systemctl --user enable connectdocker.service
tiger@# systemctl --user start connectdocker.service
そして結果:
Thu Jul 21 00:59:15 CST 2016
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
しかし、私はtigerでdocker.sockに接続できます:
tiger@# docker run -itd busybox
997e99f959cfd5500319935ec17677775da9d367d203a11efef8b42161c3ee64
それを証明するために、私は/var/run/docker.sock
グループをdockerからtiger に変更し、connectdockerサービスはdockerデーモンに接続できます。
変更/var/run/docker.sock
:
ls -l /run/docker.sock
srw-rw---- 1 root docker 0 Jul 21 00:33 /run/docker.sock
に:
ls -l /run/docker.sock
srw-rw---- 1 root tiger 0 Jul 21 00:33 /run/docker.sock