도커: unix:///var/run/docker.sock의 도커 데몬 소켓에 연결하는 동안 사용 권한이 거부되었습니다.
저는 도커가 처음입니다.저는 Jenkins와 함께 로컬 머신(Ubuntu 16.04)에서 도커를 사용하려고 했습니다.
아래 파이프라인 스크립트로 새 작업을 구성했습니다.
node {
stage('Build') {
docker.image('maven:3.3.3').inside {
sh 'mvn --version'
}
}
}
그러나 다음 오류와 함께 실패합니다.
unix:///var/run/docker.sock의 Docker 데몬 소켓에 연결하는 동안 사용 권한이 거부되었습니다.
젠킨스를 사용하는 경우
용자jenkins
.docker
:
sudo usermod -a -G docker jenkins
그런 다음 젠킨스를 다시 시작합니다.
그렇지않으면
도커에서 이 메시지를 수신했지만 젠킨스를 사용하지 않기 때문에 스택 오버플로 문제에 도달하는 경우 대부분의 오류는 동일합니다. 권한이 없는 사용자는 도커 그룹에 속하지 않습니다.
할 수 있는 일:
sudo usermod -a -G docker [user]
을 사자이삽위치입에 합니다.[user]
사실은.
다음을 수행하여 성공적이었는지 확인할 수 있습니다.grep docker /etc/group
그리고 다음과 같은 것을 봅니다.
docker:x:998:[user]
한 줄에
다음 를 그런다사를그룹용 ID음다로 변경합니다.docker
(로그아웃했다가 다시 로그인하지 않도록 하려면):
newgrp docker
첫 번째 솔루션은 다음과 같습니다.
usermod -aG docker jenkins
usermod -aG root jenkins
chmod 664 /var/run/docker.sock
하지만 그들 중 누구도 나를 위해 일하지 않아요, 나는 노력했어요.
chmod 777 /var/run/docker.sock
그것은 가능하지만, 저는 그것이 옳은 결정인지 모르겠습니다.
나를 위한 성공
sudo usermod -a -G docker $USER
reboot
2018-08-19
저는 며칠 동안 이 문제에 갇혀 있었고 왜 그리고 어떻게 대답해야 하는지에 대한 완전한 답을 찾지 못했기 때문에, 같은 문제에 걸려 위의 대답이 작동하지 않는 다른 사람들을 위해 하나를 게시할 것입니다.
도커 내부에서 젠킨스를 실행할 때 중요한 3단계는 다음과 같습니다.
- 합니다.
/var/run/docker.sock
호스트에서 도커를 사용할 수 있도록 젠킨스 컨테이너로 이동합니다. - 컨테이너를 사용하기 위해서는 컨테이너 내부에 도커를 설치해야 합니다.이것은 그것을 하는 방법에 대한 훌륭하고 간단한 기사입니다.최신 버전에는 이미 도커가 설치되어 있을 수 있습니다.
- 당신은 뛰어요
sudo usermod -a -G docker jenkins
젠킨스를 도커 그룹에 추가하기 위해.그러나 여기서 호스트 도커와 컨테이너 도커의 그룹 ID가 동일하지 않으면 사용 권한 문제가 발생할 수 있으므로 컨테이너 도커의 gid를 호스트 도커 gid와 동일하게 조정하는 것이 매우 중요합니다.
이 작업은 실행 스크립트의 일부로 수행하거나 다음을 사용하여 수행할 수 있습니다.exec
을 수동으로 것: 수니다합행로으수.groupmod -g <YOUR_HOST_DOCKER_GID> docker
.
또한 의 사용 권한을 변경하지 마십시오./var/run/docker.sock
그것은 큰 보안 위험이기 때문에 777이나 그런 것들에, 당신은 기본적으로 모든 사람에게 당신의 기계에서 도커를 사용할 수 있는 권한을 주고 있습니다.
이것이 도움이 되길 바랍니다.
도커의 액세스 권한을 변경합니다.양말 줄
chmod 777 /var/run/docker.sock
또는 사용할 수 있습니다.sudo
명령의 시작 부분입니다.
chmod 777
을 허용하는 반면, " " " 은 모든 작업을 허용합니다.chmod 666
모든 사용자가 파일을 읽고 쓸 수는 있지만 실행할 수는 없습니다.
Ubuntu 20.04에서 사용할 수 있습니다.
sudo chmod 666 /var/run/docker.sock
정확히 어떤 일을 하는지는 모르지만 문제를 해결하세요.
방법 01 : - 더 안전한 방법
sudo usermod -aG docker ${USER}
새 그룹 구성원 자격을 적용하려면 서버에서 로그아웃했다가 다시 로그인하거나 다음을 입력합니다.
su - ${USER}
계속하려면 사용자의 암호를 입력하라는 메시지가 표시됩니다.다음을 입력하여 사용자가 이제 도커 그룹에 추가되었는지 확인합니다.
id -nG
방법 02:- 공공 배치에 권장되지 않음(안전하지 않음)
chmod 777 /var/run/docker.sock
또는 사용
sudo chown root:docker /var/run/docker.sock
단순 추가docker
의 보충 그룹으로서.jenkins
사용자
sudo usermod -a -G docker jenkins
Docker 이미지를 Jenkins 에이전트로 사용하는 경우에는 항상 충분하지 않습니다.즉, 만약 당신이Jenkinsfile
합니다.pipeline{agent{dockerfile
또는pipeline{agent{image
:
pipeline {
agent {
dockerfile {
filename 'Dockerfile.jenkinsAgent'
}
}
stages {
이는 젠킨스가 명령을 수행하여 세 가지 문제가 발생하기 때문입니다.
- 에이전트에 도커 프로그램이 설치되어 있지 않을 수 있습니다.
- 에이전트는 Docker 데몬 소켓에 액세스할 수 없으므로 권장되지 않는 Docker-in-Docker를 실행하려고 합니다.
- Jenkins는 에이전트가 사용해야 하는 숫자 사용자 ID 및 숫자 그룹 ID를 제공합니다.그룹이 . " " "이기 때문입니다. 다음과 같은 이유로
docker run
컨테이너에 로그인하지 않습니다(이것은 더 비슷합니다).sudo
).
에이전트에 대한 도커 설치
도커 이미지 내에서 도커 프로그램을 사용할 수 있도록 하려면 도커 파일에서 도커 설치 단계를 실행하기만 하면 됩니다.
# 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
...
도커 데몬 소켓 공유
앞서 언급했듯이 두 번째 문제를 해결하는 것은 Jenkins Docker 컨테이너를 실행하여 컨테이너 외부에 있는 Docker 대몬과 Docker 대몬 소켓을 공유하는 것을 의미합니다.Jenkins에게 해당 공유로 Docker 컨테이너를 실행하도록 지시해야 합니다.
pipeline {
agent {
dockerfile {
filename 'Dockerfile.jenkinsAgent'
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
UID 및 GID 설정
세 번째 문제에 대한 이상적인 해결책은 에이전트를 위한 추가 그룹을 설정하는 것입니다.그것은 불가능해 보입니다. 있는 를 실행하는 입니다(소켓은 쓰기 UID가 ).root.docker
그 이 무엇인지 못합니다. (이은 "아이디" (그들하이알들은다못다합니니지습무지인엇었할되때그당로그일으반지적만당신은그▁the들s▁).▁when▁allocated▁(▁but▁are)useradd ... jenkins
그리고.groupadd ... docker
Jenkins 및 Docker가 호스트에 설치되었을 때 실행됨). 에게 단순히 사용자에게 수는 .jenkins
및룹그docker
args '-v /var/run/docker.sock:/var/run/docker.sock -u jenkins:docker'
도커에게 이름이 지정된 사용자 및 그룹을 사용하도록 지시하기 때문입니다.jenkins
그리고.docker
이미지 내에서, 그리고 당신의 도커 이미지는 아마도 없습니다.jenkins
사용자와 그룹, 그리고 그것이 호스트와 동일한 UID와 GID를 가질 것이라는 보장이 없을 것이고, 유사하게도 그것은 보장이 없습니다.docker
GID는 동일합니다.
다행히 젠킨스가 운영하는docker build
스크립트에서 Docker 파일에 대한 명령을 실행하여 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
의 UID와 GID를 가져오는 명령jenkins
사용자 및 명령을 사용하여 도커 소켓에 대한 정보를 가져옵니다.
이를 사용하여 도커파이정사다설수있다습니정할음을여를 할 수 .jenkins
및 용자및docker
에이전트 그룹, 사용 및 :
# 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
Jenkins 사용자를 루트 그룹에 추가하고 Jenkins를 다시 시작했더니 작동하기 시작했습니다.
sudo usermod -a -G root jenkins
sudo service jenkins restart
권한 문제인 비슷한 문제에 직면했는데, 이 문제의 원인은 Docker 데몬/서버가 항상 다음과 같이 실행되기 때문입니다.root
"도커 명령어", "도커 명령어"를 붙이도록 .sudo
.
도커 데몬은 TCP 포트 대신 유닉스 소켓에 바인딩됩니다..root
다른 사용자는 다음을 사용해야만 액세스할 수 있습니다.sudo
.
이 문제를 해결하기 위해 저는 다음과 같이 노력했습니다.
먼저 도커 그룹이 이미 생성되었는지 확인합니다.
cat /etc/group
찾을수없경을 찾지 .docker
표시된 목록에서 다음을 생성해야 합니다.
sudo groupadd docker
그 다음에, 여러분의 음로확니다합인다를 해 보세요.user
그리고 당신의group
아래 명령 사용:
cat /etc/group
도커 그룹을 보려면 스크롤합니다.이 형식이어야 합니다.
docker:x:140:promisepreston
docker
의 나의입니다.group
그리고.promisepreston
의 나의입니다.user
이제 사용자를 도커 그룹에 추가할 수 있습니다.
또한 "도커" 그룹에 사용자를 추가합니다. 도커를 루트 사용자가 아닌 사용자로 사용하려면:
실행하려는 도커 이미지/컨테이너/명령어, 실행하려는 도커 이미지/컨테이너/명령어 또는 권한 문제의 원인에 관계없이 아래 명령어를 수정하지 않고 정확히 단말기에 복사하여 실행합니다.
sudo usermod -aG docker $USER
위의 명령을 실행한 후 로그아웃했다가 다시 로그인해야 그룹 구성원 자격이 재평가됩니다.그러나 Linux에서는 아래 명령을 실행하여 그룹에 대한 변경 사항을 활성화할 수도 있습니다(실행하려는 도커 이미지/컨테이너/명령에 관계없이 아래 명령을 수정하지 않고 단말기에서 명령을 정확히 복사하여 실행합니다).
newgrp docker
OR
sudo systemctl restart docker
이제 권한 문제를 일으키는 명령을 다시 실행하여 sudo 권한 없이 도커 명령을 실행할 수 있는지 확인할 수 있습니다(이미지/컨테이너/명령 이름으로 바꾸기).
docker run my-command
도커 및 로컬 파일 시스템 파일의 경우:
로컬 파일 시스템에 파일 복사본이 있는 경우 다음 형식을 사용하여 응용프로그램 파일이 저장된 응용프로그램 디렉토리의 소유권을 변경할 수 있습니다.
sudo chown your_user:your_group -R my-app-directory/
제 경우에는 다음과 같습니다.
sudo chown promisepreston:docker -R my-app-directory/
참고: 응용 프로그램 디렉터리가 들어 있는 상위 디렉터리 내에서 이 명령을 실행하십시오.
이상입니다.
이것이 도움이 되길 바랍니다.
1단계: 사용자 이름을 에 추가합니다.docker
선택사항:
sudo usermod -a -G docker $USER
그런 다음 로그아웃하고 다시 로그인합니다.
2단계: 그런 다음 도커 그룹 ID를 변경합니다.
newgrp docker
보너스: 새 그룹 확인:
id -g
추신: 관심이 있으시다면, 여기 참고 자료가 있습니다.
다음 명령을 사용하여 이 문제를 해결했습니다.
sudo chmod 777 /var/run/docker.sock
sudo chown ${USER}:docker /var/run/docker.sock
저는 아래 명령을 사용했고, 그것은 저에게 효과가 있었습니다.
sudo chmod 777 /var/run/docker.sock
Jenkins를 Docker에서 실행하고 Jenkins가 호스트 시스템 Ubuntu 16.04에서 /var/run/docker.sock으로 Docker 소켓을 사용하고 있습니다.
저에게 해결책은 다음과 같습니다.
내부 (젠이킨내부테도너컨커의스▁of(▁inside내젠부▁dock▁container)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
호스트 시스템:
sudo service docker restart
664
그룹의 소유자 및 사용자에 대한 읽기 및 쓰기(실행되지 않음)를 의미합니다.
이는 매우 일반적인 권한 문제이며 단순 솔루션은 다음과 같습니다.
도커에 있는 읽기-쓰기 권한 확인:
ls -l /var/run/docker.sock
의 명령어가 다음과:srw-rw---- 1 root docker 0 Feb 17 12:48 /var/run/docker.sock
그런 다음 권한을 변경해야 합니다.
sudo chmod 666 /var/run/docker.sock
권한을 한 후 다음과 같습니다.srw-rw-rw- 1 root docker 0 Feb 17 12:48 /var/run/docker.sock
만약 당신이 궁금하다면 666은 무엇입니까?
읽기, 쓰기 및 실행 권한 [소유자의 경우 첫 번째 숫자, 그룹의 경우 두 번째 숫자, 사용자의 경우 세 번째 숫자], 666이 777보다 더 안전합니다.
프로덕션 구성을 수행하는 동안 권한 문제가 발생했습니다.저는 그 문제를 해결하기 위해 아래의 해결책을 시도했습니다.
오류 메시지
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에 표시된 소켓 권한.양말:
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
문서에 대한 사용 권한을 변경한 후.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/
공식 출처: https://docs.docker.com/engine/install/linux-postinstall/ #manage-domer-as-a-root-user에 따르면 명령을 "사전"할 수 있다고 언급하는 사람은 아무도 없는 것 같습니다.sudo
사용자를 만들거나 다른 조작 없이 작동합니다.를 들어 를들면입니다.sudo docker pull mongo
효과가 있습니다.
나의 경우, 그것은 단지 추가만 필요한 것이 아니었습니다.jenkins
에 대한 사용자.docker
그룹, 하지만 그 그룹을 주요 그룹으로 만듭니다.jenkins
사용자의
# usermod -g docker jenkins
# usermod -a -G jenkins jenkins
경우에 따라 젠킨스 슬레이브 노드를 다시 연결하거나 젠킨스 서버를 다시 시작하는 것을 잊지 마십시오.
2019-05-26
나한테 효과가 있었어요!
도커 구성 예제:
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"
2019-02-16
대부분의 단계는 다른 사람들이 쓴 것과 동일합니다.그러나 언급된 솔루션과 함께 사용자 모드를 사용하여 그룹 도커에 젠킨스를 추가할 수 없었습니다.
도커 호스트와 실행 중인 도커 컨테이너에서 다음 명령을 시도했습니다.
sudo usermod -a -G docker jenkins
(도커 호스트로부터 다음 명령을 받아 실행 중인 도커 컨테이너에 진입했습니다.
docker exec -t -i my_container_id_or_name /bin/bash
)
도커 호스트에서 수신됨:
사용자 모드: '사용자'가 존재하지 않습니다.
도커 컨테이너에서 수신됨:
지역 시스템 관리자로부터 일반적인 강의를 받으셨으리라 믿습니다.일반적으로 다음 세 가지로 요약됩니다.
#1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.
[sudo] 젠킨스의 암호:
저는 비밀번호를 몰랐습니다.
다음을 제외하고는sudo
명령의 일부, 내가 받은 도커 컨테이너:
사용자 모드:권한 거부.usermod: /etc/passwd를 잠글 수 없습니다. 나중에 다시 시도하십시오.
솔루션:다음 명령을 사용하여 도커 호스트에서 실행 중인 도커 컨테이너에 입력했습니다.
docker exec -t -i -u root my_container_id_or_name /bin/bash
이제 root로 입력하고 다음 명령을 실행했습니다.
usermod -a -G docker jenkins
그런 다음 도커 호스트에서 다음 명령을 사용하여 실행 중인 도커 컨테이너를 다시 시작했습니다.
docker restart my_container_id_or_name
그 후, 저는 젠킨스 일을 시작했고 성공적으로 끝났습니다.
root 사용자만 사용하여 다음을 실행했습니다.usermod
입니다.jenkins
.
아래와 같은 오류가 발생할 수 있다면,
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
저는 공식 젠킨스 도커 이미지(https://hub.docker.com/r/jenkins/jenkins) 를 사용하고 있지만 이 솔루션은 도커 컨테이너 안에서 도커를 실행하려는 대부분의 사용 사례에 적용 가능하다고 생각합니다.
도커 컨테이너 내에서 도커를 사용하는 권장 방법은 호스트 시스템의 도커 디몬을 사용하는 것입니다.그것에 관한 좋은 기사: https://itnext.io/docker-in-docker-521958d34efd .
이 질문이 다루는 권한 문제를 처리하는 비결은 호스트 시스템이 아니라 컨테이너 내부의 컨테이너 사용자에 대한 권한을 추가하는 것입니다.기본적으로 루트 사용자만 이 작업을 수행할 수 있는 권한이 있습니다.
docker exec -it -u root <container-name> bash
usermod -a -G docker <username>
할 것입니다.컨테이너를 다시 시작해야 합니다.
이를 달성하는 가장 간단한 방법은 사용자 정의된 Docker 파일을 만드는 것입니다.
# 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
이 경우 성공적으로 작동합니다. 로컬 repo를 탐색하고 이 명령을 입력하십시오.
sudo chmod 666 /var/run/docker.sock
우리는 이 문제를 해결하기 위한 두 가지 방법이 있습니다.
방법 1 새 그룹 구성원 자격 적용
sudo usermod -aG docker ${USER}
su - ${USER}
방법 2 파일 권한 및 그룹 권한 변경
chmod 777 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
방법 1은 보안 방법입니다.
sudo usermod -a -G docker jenkins
sudo service jenkins restart
젠킨스를 도커 컨테이너 안에 넣고 있어요가장 간단한 해결책은 다음과 같이 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
또는 다음 옵션을 사용하여 젠킨스를 시작할 수 있습니다.
-v /var/run/docker.sock:/var/run/docker.sock \
-u jenkins:$(getent group docker | cut -d: -f3)
이는 젠킨스 이미지에 도커 클라이언트가 설치되어 있다고 가정합니다.참조: https://getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci
Jenkins를 Docker 컨테이너 안에서 실행하고 Jenkins가 호스트 Docker에 연결되어 있는 경우 아래의 Docker 파일을 사용하여 이 문제를 해결할 수 있습니다.
FROM jenkins/jenkins:2.179
USER root
RUN groupadd docker && usermod -a -G docker jenkins
USER jenkins
sudo setfacl --modify user:(사용자 이름 또는 ID):rw /var/run/docker.양말
여러 번 명령을 실행하려고 했습니다.
sudocmod 777 /var/run/dumper.양말
하지만 안타깝게도 우분투 시스템에 로그인할 때마다 이 작업을 수행해야 합니다.다시 시작할 필요가 없으며 사용자 모드 또는 삭제보다 안전합니다.사용자 이름이 컨테이너 내부에만 있고 호스트에는 없는 경우 사용자 ID가 필요합니다.
저는 그것이 당신이 문제를 해결하는 데 도움이 되기를 바랍니다.
도커가 sudo systemctl 상태 도커를 실행하고 있는지 확인합니다.
오류 도커 ps -a를 확인하는 방법
사용 권한 sudouser 모드 지정 - aG 도커 ${USER} 다음 명령 su - ${USER}
오류 도커 ps -a가 표시되는지 다시 확인합니다.
서버 한 후 Ubuntu를 통해 가 끊기는 문제가 발생했습니다.sudo chmod 666 /var/run/docker.sock
그래서 저는 제 사용자 이름을 추가해야 했습니다.ubuntu
) 다음을 통해 도커 그룹으로 이동합니다.sudo usermod -aG docker ubuntu
언급URL : https://stackoverflow.com/questions/47854463/docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socke
'programing' 카테고리의 다른 글
옵션 단추의 독립적인 그룹 만들기 (0) | 2023.08.10 |
---|---|
빠른 상수:구조자 열거형 (0) | 2023.08.10 |
도커 - Ubuntu - bash: ping: 명령을 찾을 수 없습니다. (0) | 2023.08.05 |
Maria의 "SSL 필요" 및 "X509 필요" SSL 옵션의 차이점DB (0) | 2023.08.05 |
jQuery().load()를 중단하는 중 (0) | 2023.08.05 |