2017-08-01 4 views
4

私はJenkinsドッカーコンテナーを作成し、ホスト上のドッカーソケットをコンテナーにリンクしました。このように:でドッカーデーモン ソケットに接続しようとしているときJenkinsドッカーコンテナーの内側からドッカーを使用する方法

ガット許可拒否:私はジェンキンスの一部のジョブを作成しようとすると

docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 50000:50000 -d --name jenkins --restart unless-stopped jenkins 

それから私が得る通常のメッセージは、「アクセス許可が拒否されました」 UNIXの場合:///var/run/docker.sock: http://%2Fvar%2Frun%2Fdocker.sock/v1.29/images/jsonを取得します。UNIX /var/run/docker.sockをダイヤル:接続:許可が

を拒否された。しかし、その問題はdoesnの私がコンテナに接続し、rootユーザーを使ってコマンドを実行すると起こりません。

どうすればこの問題を解決できますか?

sudo gpasswd -a jenkins docker(ホスト上にjenkinsユーザが存在しないため、コンテナ内のみ)を実行してjockkinsユーザをホスト上のドッカーグループに追加できません。また、このコマンドをコンテナ内で実行することもできませんコンテナはドッカーグループについて知らない)。どのようにこれを解決するためのヒント?

+1

を参照してくださいあなたは、コンテナを実行したときに、 '--privileged' agrumentを追加してみてください。コマンドは 'docker run -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8000 -p 50000:50000 -d --name jenkins --restart unless-stopped - のようになります。特権ジンキンズ –

答えて

2

ドッカーグループをコンテナ内に追加できます。そのbashでこれを行います。

groupadd -g <docker-group-id> docker 

ホストでこれを実行している<docker-group-id>をご覧ください:

ls -ln /var/run/docker.sock 

は、次にドッキングウィンドウグループにジェンキンスユーザーを追加します。

gpasswd -a jenkins docker 

これが発生する可能性のあるセキュリティ問題を考慮してください:

警告:dockerグループは、rootユーザーと同等の権限を付与します。これがシステムのセキュリティに与える影響の詳細については、Docker Daemon Attack Surfaceを参照してください。

docs

+0

私はあなたの最初の2つのコマンドを1つに少し改良しました。このように: 'groupadd -g $(ls -ln /var/run/docker.sock | awk '{print $ 4}')docker'。ありがとう! –

+0

nice!あなたは大歓迎です:) – Robert

+0

はどうすれば入手できますか? –

関連する問題