私はCI作業用のjenkinsドッカー・コンテナを立ち上げています。私が使用しているホストOSはCoreOSです。 Jenkinsコンテナの中で、私はホストシステムのドッカーコンテナにビルドを実行するためにdocker-cliもインストールしました。root権限を持たないユーザーのためにドッカー・コンテナにボリューム権限を設定する方法
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/json: dial unix /var/run/docker.sock: connect: permission denied
:私はコンテナを起動し、ドッキングウィンドウのコマンドを実行したときに
が
volumes:
- /jenkins/data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock:rw
、私はエラーの下になった:そのために、私はマッパードッカーソケット用ジェンキンスコンテナに/var/run
をマウントする設定の下に使用します
/var/run
はroot権限ですが、私のユーザーはjenkins
です。どのようにしてjenkinsユーザーがマッパーソケットを通してdockerコマンドを使用できるように許可の問題を解決できますか?
私は、コマンドの下に試してみましたが、コンテナは私がsudo
を実行することはできません:
$ sudo usermod -a -G docker jenkins
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
私は、コンテナで 'sudo'コマンドを使用できないことがわかりました。私はsudoコマンドを実行すると、以下のエラーが表示されます: 'あなたはローカルのシステム 管理者から通常の講義を受けたと信じています。それは通常これらの3つのものに沸く: #1)他人のプライバシーを尊重する。 #2)入力する前に考えてみてください。 #3)大きな力で大きな責任がもたらされます。 sudo:ttyが存在せず、askpassプログラムが指定されていません。 –
これを正しく設定するか、別のオプションを使用する必要があるかもしれません。 – larsks