Docker:unix:///var/run/docker.sockのDockerデーモンソケットに接続しようとしているときに権限が拒否されました


175

私はドッカーが初めてです。Jenkinsを使用してローカルマシン(Ubuntu 16.04)でdockerを使用しようとしました。

以下のパイプラインスクリプトを使用して新しいジョブを構成しました。

node {
    stage('Build') {
      docker.image('maven:3.3.3').inside {
        sh 'mvn --version'
      }
    }
}

しかし、以下のエラーで失敗します。

ここに画像の説明を入力してください


1
それはモノリシックなジェンキンスですか、それともマスタースレーブ設定ですか?docker inspectコマンドを実行しているユーザーを確認します。/var/run/docker.sockにグループへのRWアクセスがあるかどうかを確認します。
Ram Kamath 2017


2
ドッキングウィンドウのインストール後の手順:docs.docker.com/install/linux/linux-postinstall/...
radistao

回答:


294

ユーザーをjenkinsグループに追加する必要がありますdocker

sudo usermod -a -G docker jenkins

次に、Jenkinsを再起動します。

編集する

dockerからこのメッセージを受け取ったためにスタックオーバーフローのこの質問に到達したが、jenkinsを使用していない場合、おそらくエラーは同じです。非特権ユーザーはdockerグループに属していません。

できるよ:

sudo usermod -a -G docker alice

またはユーザー名が何であれ。

あなたは最後にそれをチェックして、grep docker /etc/group次のようなものを見ることができます:

docker:x:998:alice

いずれかの行で。

次に、ユーザーグループIDをdocker次のように変更します。

newgrp docker

88
ユーザーの再ログイン
Ilya Kolesnikov

8
いい答えですが、もっと一般的に言えば、これを行うことができます sudo usermod -a -G docker $USER。ログアウトまたは再起動します。リンク
Julien Nyambal

10
これを実際に機能させるには、サーバーを再起動する必要がありました。
etagwerker

3
これを機能させるにはノードを切断/再接続する必要がありました(ノードはSSH経由で接続されています)
GaspardP

28
再度ログインする必要はありませんnewgrp docker。同じ端末セッションで代わりに使用してください。
C14L

69

私の最初の解決策は:

usermod -aG docker jenkins
usermod -aG root jenkins
chmod 664 /var/run/docker.sock

しかし、それらのどれも私のために機能しません、私は試しました:

chmod 777 /var/run/docker.sock

それは機能しますが、それが正しい呼び出しであるかどうかはわかりません。


4
失敗した理由は、おそらくターミナルを再度開く必要があったためです。それは664を実行した後失敗しましたが、それから私はそれが働いた新しいシェルを開きました。
PHGamer 2018年

1
再開を試みましたが、最後のchmod 777の後でのみ機能し始めました
皮肉なことに、

問題は、再起動後に777が660にリセットされたことです。私にとっての問題を解決したのは、「usermod -aG users jenkins」でした。
皮肉なことに、

リセットされたことに気づきましたが、docker.sock権限を777に設定しないでください。これにより、システムのすべてのユーザーにroot権限が与えられます。Dockerと通信して、制限なしで特権コンテナを作成できます。
ランスハドソン

3
これは著者にとっても私にとっても機能しましたが、docker.sockファイルへのアクセスを増やすことは最善の解決策ではありませんusermod。...の手順を実行し、システムを再起動するだけです。それ以外の場合は有効になりません
マリアーノルイス

32

私の成功

sudo usermod -a -G docker $USER
reboot

4
再起動する必要はありません。ログアウトして、再度ログインするだけです。私はusermodについて話している
Abdennour TOUMI

1
Ubuntu 18.04では、設定を機能させるために再起動する必要がありました。
Nikhil、

1
Ubuntu 20.04では、再起動が必要でした。セッションを閉じるだけでは不十分です。
framontb

または、ログアウトする代わりにsu $ {USER}を実行します
goonerify

19

2018-08-19

私はこれについて何日も行き詰まっています。その理由と方法についての完全な答えが見つからないので、同じ問題に遭遇し、上記の回答が機能しない他の人に投稿します。

これらは、Docker内でJenkinsを実行する際の3つの重要なステップです。

  1. /var/run/docker.sockホストからdockerを使用できるようにするために、ソケットをjenkinsコンテナーにマウントします。
  2. 使用するには、コンテナ内にdockerをインストールする必要があります。これは、その方法についての素晴らしくシンプルな記事です。新しいバージョンにはすでにdockerがインストールされている可能性があることに注意してください
  3. sudo usermod -a -G docker jenkinsdockerグループにジェンキンを追加するために実行します。ただし、ホストDockerとコンテナーDockerに同じグループIDがない場合、アクセス許可の問題が発生する可能性があるため、コンテナーDockerのGIDをホストDockerのGIDと同じになるように調整することが非常に重要です。

これは、起動スクリプトの一部として、または単にexec手動で使用して実行することで実行できますgroupmod -g <YOUR_HOST_DOCKER_GID> docker

また、セキュリティのリスクが大きいため、777やそのようなもののアクセス許可変更しない/var/run/docker.sockでください。基本的には、マシンでdockerを使用するためのアクセス許可をすべてのユーザーに与えます

お役に立てれば


1
ありがとう-現在のJenkins Dockerイメージの場合、Dockerコマンドは既にインストールされている(そしてapt-getはインストールされていない)ことに注意してください。その他のポイント-Jenkinsを適切なグループに追加し、GIDがDockerホストのものと一致することを確認してください。スポット。
Steve Bonds

1
グループIDの問題で私の命を救った。ありがとう!
lenkovi


11

docker.sockファイルのアクセス許可を変更する

chmod 777 /var/run/docker.sock

またはuをsudoコマンドの最初に使用できます。

chmod 777すべてのユーザーにすべてのアクションをchmod 666許可し、すべてのユーザーにファイルの読み取りと書き込みを許可しますが、ファイルを実行することはできません。


これは私が必要としたものです、ありがとう!
crazynx

9

単に追加dockerとして補助グループのためのjenkinsユーザー

sudo usermod -a -G docker jenkins

DockerイメージをJenkinsエージェントとして使用する場合は、必ずしも十分ではありません。つまり、次のいずれかでJenkinsfile始まるpipeline{agent{dockerfile場合pipeline{agent{image

pipeline {
    agent {
        dockerfile {
            filename 'Dockerfile.jenkinsAgent'
        }
    }
    stages {

これは、Jenkinsがdocker runコマンドを実行するため、3つの問題が発生するためです。

  • エージェントには(おそらく)Dockerプログラムがインストールされていません。
  • エージェントはDockerデーモンソケットにアクセスできないため、Docker-in-Dockerを実行しようとしますが、これはお勧めできません
  • Jenkinsは、エージェントが使用する必要がある数値のユーザーIDと数値のグループIDを提供します。docker runはコンテナにログインしないため、エージェントには補足グループがありません(それはに似ていますsudo)。

エージェント用のDockerのインストール

Dockerイメージ内でDockerプログラムを利用できるようにするには、DockerfileでDockerインストール手順を実行するだけです。

# Dockerfile.jenkinsAgent
FROM debian:stretch-backports
# Install Docker in the image, which adds a docker group
RUN apt-get -y update && \
 apt-get -y install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg \
   lsb-release \
   software-properties-common

RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

RUN apt-get -y update && \
 apt-get -y install \
   docker-ce \
   docker-ce-cli \
   containerd.io

...

Dockerデーモンソケットの共有

以前言われていることがあるドッカーデーモンとドッカーデーモンソケットを共有するようにジェンキンスドッカー容器を実行する第二の問題の固定手段、容器。したがって、その共有でDockerコンテナーを実行するようにJenkinsに指示する必要があります。

pipeline {
    agent {
        dockerfile {
            filename 'Dockerfile.jenkinsAgent'
            args '-v /var/run/docker.sock:/var/run/docker.sock'
        }
    }

UIDとGIDの設定

3番目の問題に対する理想的な修正は、エージェントの補足グループを設定することです。それは不可能のようです。私が知っている唯一の修正は、Jenkins UIDとDocker GIDを使用してエージェントを実行することです(ソケットにはグループ書き込み権限があり、が所有していますroot.docker)。しかし、一般的に、あなたはそれらのIDは、(ときに割り当てられていたが何であるかを知らないuseradd ... jenkinsgroupadd ... docker、RANジェンキンスとドッカーがホストにインストールされたとき)。そして、Jenkinsにユーザーuser jenkinsとgroup を単に伝えることはできませんdocker

args '-v /var/run/docker.sock:/var/run/docker.sock -u jenkins:docker'

ので、それが命名されているユーザーとグループを使用するドッカーに指示jenkinsし、docker 画像内の、そしてあなたのドッカーイメージはおそらく持っていないjenkinsユーザーやグループを、そしてそれがなかった場合でも、それは同じUIDやGIDなどを持っているでしょう保証はないだろうホスト、そして同様にdockerGIDが同じである保証はありません

幸い、Jenkinsはdocker buildDockerfile のコマンドをスクリプトで実行するため、シェルスクリプトの魔法を使ってその情報をDockerビルド引数として渡すことができます。

pipeline {
    agent {
        dockerfile {
            filename 'Dockerfile.jenkinsAgent'
            additionalBuildArgs  '--build-arg JENKINSUID=`id -u jenkins` --build-arg JENKINSGID=`id -g jenkins` --build-arg DOCKERGID=`stat -c %g /var/run/docker.sock`'
            args '-v /var/run/docker.sock:/var/run/docker.sock -u jenkins:docker'
        }
    }

これは、idコマンドを使用してユーザーのUIDGIDを取得し、コマンドを使用してDockerソケットに関する情報を取得します。jenkinsstat

Dockerfileはその情報を使用して、およびを使用して、エージェントのjenkinsユーザーとdockerグループを設定できます。groupaddgroupmoduseradd

# Dockerfile.jenkinsAgent
FROM debian:stretch-backports
ARG JENKINSUID
ARG JENKINSGID
ARG DOCKERGID
...
# Install Docker in the image, which adds a docker group
RUN apt-get -y update && \
 apt-get -y install \
   apt-transport-https \
   ca-certificates \
   curl \
   gnupg \
   lsb-release \
   software-properties-common

RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

RUN apt-get -y update && \
 apt-get -y install \
   docker-ce \
   docker-ce-cli \
   containerd.io

...
# Setup users and groups
RUN groupadd -g ${JENKINSGID} jenkins
RUN groupmod -g ${DOCKERGID} docker
RUN useradd -c "Jenkins user" -g ${JENKINSGID} -G ${DOCKERGID} -M -N -u ${JENKINSUID} jenkins

これは優れた包括的なソリューションであり、dockerfileを介してdockerに共有されるdockerソケットを使用するときに私のために機能した唯一のソリューションです。独自のブログ投稿にする必要があります。これをありがとう!
Greg Olmstead

あなたは合格することができるようです-u jenkins:$(getent group docker | cut -d: -f3)
Gillespie、

引数を渡すときには、次の行を変更した方が良いでしょうう:args '-v /var/run/docker.sock:/var/run/docker.sock -u jenkins:docker'によってargs '-v /var/run/docker.sock:/var/run/docker.sock -u jenkins:jenkins --group-add docker' -uジェンキンス渡すとき:ドッキングウィンドウを、あなたは、ワークスペースに言わせたときに、ユーザーの書き込みファイル、それはファイルを設定します平均一次ユーザグループを変更しますユーザーをjenkinsに、グループをdockerに。これはおそらく私たちが意図したものではありません。
Nicolas Forney

8

私はDockerでJenkinsを実行していて、接続されたJenkinsはホストマシンUbuntu 16.04からボリュームを介して/var/run/docker.sockへのDockerソケットを使用しています。

私にとっての解決策は:

1)JenkinsのDockerコンテナー内(docker exec -it jenkins bashホストマシン上)

usermod -a -G docker jenkins
chmod 664 /var/run/docker.sock
service jenkins restart (or systemctl restart jenkins.service)
su jenkins

2)ホストマシン:

sudo service docker restart

664 意味-グループの所有者とユーザーの読み取りと書き込み(実行は不可)。


これは、ログイン/ログインを必要としない唯一のソリューションです。つまり、これをシェルスクリプトで実行しようとしたときに機能するソリューションです。
PV

3

本番構成を行っているときに、権限の問題が発生しました。以下の解決策を試して問題を解決しました。

エラーメッセージ

ubuntu@node1:~$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

解決策:エラーメッセージ/var/run/docker.sockに示されたソケットの権限:

ubuntu@ip-172-31-21-106:/var/run$ ls -lrth docker.sock
srw-rw---- 1 root root 0 Oct 17 11:08 docker.sock
ubuntu@ip-172-31-21-106:/var/run$ sudo chmod 666 /var/run/docker.sock
ubuntu@ip-172-31-21-106:/var/run$ ls -lrth docker.sock
srw-rw-rw- 1 root root 0 Oct 17 11:08 docker.sock

docket.sockの権限を変更した後、以下のコマンドを実行して権限を確認します。

ubuntu@ip-172-31-21-106:/var/run$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

2

私の場合、jenkinsユーザーをdockerグループに追加するだけでなく、そのグループをjenkinsユーザーのプライマリグループにする必要がありました。

# usermod -g docker jenkins
# usermod -a -G jenkins jenkins

場合によっては、jenkinsスレーブノードを再接続するか、jenkinsサーバーを再起動することを忘れないでください。


2

2019-02-16

ほとんどのステップは、他の人が書いたのと同じでした。 しかし、上記のソリューションでusermodを使用してグループDockerにジェンキンを追加することはできませんでした。

docker host実行中のdocker containerから次のコマンドを試しました:

sudo usermod -a -G docker jenkins

(私はdocker hostから次のコマンドで実行中のdockerコンテナーに入りました:

docker exec -t -i my_container_id_or_name /bin/bash

Dockerホストから受信:

usermod:ユーザー「jenkins」は存在しません

Dockerコンテナーから受信:

地元のシステム管理者から通常の講義を受けたと信じています。これは通常、次の3つに要約されます。

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] jenkinsのパスワード:

パスワードを知りませんでした。

sudoコマンドの一部なしで、私が受け取ったdockerコンテナーで

usermod:権限が拒否されました。usermod:/ etc / passwdをロックできません。あとでもう一度試してみてください。

解決策:次のコマンドを使用して、Dockerホストから実行中のDockerコンテナー に入りました。

docker exec -t -i -u root my_container_id_or_name /bin/bash

ここで、rootとして入力し、次のコマンドを発行しました。

usermod -a -G docker jenkins

次に、Dockerホストから、次のコマンドを使用して実行中のDockerコンテナーを再起動しました。

docker restart my_container_id_or_name

その後、私はジェンキンスの仕事を始め、それは成功して終了しました。

rootユーザーのみを使用して、ユーザーにusermodコマンドを発行しましたjenkins


2

2019-05-26

これは私のために働いた!

docker-composeの例:

version: "3"
services:
  jenkins:
    image: jenkinsci/blueocean
    privileged: true
    ports:
      - "8080:8080"
    volumes:
      - $HOME/learning/jenkins/jenkins_home:/var/jenkins_home
    environment:
      - DOCKER_HOST=tcp://socat:2375
    links:
      - socat

  socat:
     image: bpack/socat
     command: TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock
     volumes:
        - /var/run/docker.sock:/var/run/docker.sock
     expose:
        - "2375"

2

私は同様の問題に直面しました。これは権限の問題であり、この問題の原因は、Dockerデーモン/サーバーが常にrootユーザーとして実行され、常にdockerコマンドの前にを付けたいためですsudo

Dockerデーモンは、TCPポートではなくUnixソケットにバインドします。デフォルトでは、Unixソケットはユーザーが所有し、root他のユーザーはを使用してのみアクセスできますsudo

これを修正するために、私のために働いたものがここにあります:

まず、Dockerグループが既に作成されているかどうかを確認します。

cat /etc/group

docker表示されるリストで見つからない場合は、作成する必要があります。

sudo groupadd docker

次に、以下のコマンドを使用してuserとを確認しますgroup

cat /etc/group

スクロールして、Dockerのグループを確認します。この形式にする必要があります

docker:x:140:promisepreston

どこdocker私れるgrouppromisepreston私ですuser

これで、ユーザーをdockerグループに追加できます

Dockerコンテナーファイルの場合のみ:

実行したい、実行しようとしている、またはアクセス許可の問題を引き起こしているdocker image / container / commandに関係なく、以下のコマンドをコピーし、ターミナルでそれを変更せずに正確に記述します。

sudo usermod -aG docker $USER

上記のコマンドを実行した後、ログアウトしてから再度ログインし、グループメンバーシップを再評価する必要があります。ただし、Linuxでは、以下のコマンドを実行してグループへの変更をアクティブ化することもできます(以下のdocker image / container / commandに関係なく、それを変更せずに、ターミナルで以下のコマンドをコピーして、記述されているとおりに実行します。実行したい、実行しようとしている、または許可の問題を解決している):

newgrp docker 

権限の問題を引き起こしているコマンドを再度実行して、sudo権限なしでdockerコマンドを実行できることを確認できます(次のように置き換えmy-commandます(image / container / commandの名前に置き換えます):

docker run my-command

Dockerおよびローカルファイルシステムファイルの場合:

ローカルファイルシステムにファイルのコピーがある場合は、次の形式を使用して、アプリケーションファイルが格納されているアプリケーションディレクトリの所有権を変更できます。

sudo​​ ​ chown​​ ​ <your_user>:<your_group>​​ ​ -R​​ my-app-directory/

したがって、私の場合は次のようになります。

sudo chown promisepreston:docker -R my-app-directory/

注:このコマンドは、アプリケーションディレクトリを含む親ディレクトリ内で実行してください。

それで全部です。

これが役に立てば幸い



1

Dockerコンテナー内でJenkinsを実行しています。私にとって最も簡単な解決策は、GIDを動的に設定するカスタムイメージを作成することでした。

FROM jenkins/jenkins:lts
...
CMD DOCKER_GID=$(stat -c '%g' /var/run/docker.sock) && \
    groupadd -for -g ${DOCKER_GID} docker && \
    usermod -aG docker jenkins && \
    sudo -E -H -u jenkins bash -c /usr/local/bin/jenkins.sh

参照:https : //github.com/jenkinsci/docker/issues/263

または、次のオプションでjenkinsを起動することもできます。

-v /var/run/docker.sock:/var/run/docker.sock \
-u jenkins:$(getent group docker | cut -d: -f3)

これは、jenkinsイメージにDockerクライアントがインストールされていることを前提としています。参照:https : //getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci


1

以下のようなエラーが発生する場合は、

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

または

level=error msg="failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied"

次のコマンドを実行してみてください。

$ sudo su - jenkins
$ sudo usermod -a -G docker $USER
$ sudo chown jenkins:docker /var/run/docker.sock

`sudo usermod -a -G docker $ USER 'はjenkinsのパスワードを要求しますが、ユーザーパスワードが何であるかはわかりません。
3lokh

Jenkinsユーザーにsudo権限を与える必要があると思います。またはrootユーザーで次のコマンドを使用してみてください、できるusermod -a -G docker jenkinschown jenkins:docker /var/run/docker.sock
lakshmikandan

ソケットの所有権をjenkinsに変更しないでください。また、sudoは、jenkinsとしてではなく、通常のユーザーがsudoにアクセスできるものとして実行する必要があります。この回答は受け入れられた回答に何を追加しますか?
ジムスチュワート

1

私は公式の jenkins Dockerイメージ(https://hub.docker.com/r/jenkins/jenkins)を使用していますが、このソリューションは、Dockerコンテナー内でDockerを実行するほとんどのユースケースに適用できると思います。

Dockerコンテナー内でDockerを使用するための推奨される方法は、ホストシステムのDockerデーモンを使用することです。それに関する良い記事:https : //itnext.io/docker-in-docker-521958d34efd

この質問に関するアクセス許可の問題を処理するための秘訣は、ホストシステムではなく、コンテナー内のコンテナーのユーザーにアクセス許可を追加することです。rootユーザーのみがデフォルトでそれを行う権限を持っているので、

docker exec -it -u root <container-name> bash
usermod -a -G docker <username>

それを行います。コンテナを再起動することを忘れないでください。

これを実現する最も簡単な方法は、カスタマイズされたDockerfileを作成することだと思います。

# Official jenkins image
FROM jenkins/jenkins:lts
# Swith to root to be able to install Docker and modify permissions
USER root
RUN apt-get update
# Install docker
RUN curl -sSL https://get.docker.com/ | sh
# Add jenkins user to docker group
RUN usermod -a -G docker jenkins
# Switch back to default user
USER jenkins

# Bild the image:
# sudo docker build -t yourusername/imagename .
# Run the image and mount with the followin bind mount option:
# sudo docker run --name imagename -d -p8080:8080 -v /var/run/docker.sock:/var/run/docker.sock yourusername/imagename

Jenkinsイメージに
Docker

1

ローカルマシン(Ubuntu)でまだ問題が発生している場合は、以下のコマンドを試してください。

sudo chmod 666 /var/run/docker.sock

1

私の場合、これは正常に動作します。ローカルリポジトリに移動して、このコマンドを入力します。

sudo chmod 666 /var/run/docker.sock

0

Jenkinsが実行されているサーバーで、私は使用しました

sudo setfacl -m user:tomcat:rw /var/run/docker.sock

そして、各Dockerコンテナを実行します

-v /var/run/docker.sock:/var/run/docker.sock

setfaclの使用はより良いオプションのように思われ、「-uユーザー」は必要ありません。コンテナは、Jenkinsを実行しているのと同じユーザーとして実行されます。しかし、セキュリティの専門家からのフィードバックをいただければ幸いです。


0

dockerfileの下で使用

FROM jenkins/jenkins

USER root

# Install Docker
RUN apt-get update && \
    apt-get -y install apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common && \
    curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
    add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
    $(lsb_release -cs) \
    stable" && \
    apt-get update && \
    apt-get -y install docker-ce


# Compose
RUN curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose



RUN usermod -aG docker jenkins
RUN usermod -aG root jenkins

USER jenkins


0

多くの場合、新しいユーザーグループとユーザーを有効にするには再起動が必要です。


0

Dockerコンテナー内でJenkinsを実行していて、JenkinsがホストDockerにリンクしている場合は、以下のDockerfileでそれを修正できます。

FROM jenkins/jenkins:2.179
USER root
RUN groupadd docker && usermod -a -G docker jenkins
USER jenkins 

-6

たぶん、最初から「-u root」オプションを指定してDockerを実行する必要があります

少なくともそれで私の問題は解決しました


1
次に、ユーザーとしてファイルが作成される場合がありますroot。Docker 18.06.1では、少なくともこれが私に起こったことです。
Ernst de Haan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.