Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

Linux에서 'Docker 데몬에 연결할 수 없습니다' 오류 해결

Linux 터미널에서 "Docker 데몬에 연결할 수 없습니다." 오류가 표시되면 매우 혼란스러울 수 있습니다. 이를 볼 때 Docker 데몬이 이미 실행 중일 가능성이 높기 때문입니다. 이것이 맞는지 확인하고 싶지만 이 오류가 서비스가 시작되지 않는 것과 관련이 없다는 사실을 알게 되면 아마 당황할 것입니다. 대부분 Docker 그룹에 자신을 추가하지 않은 사용자에게 발생합니다.

Docker는 Linux 시스템에서 별도의 사용자 그룹을 발급하며, 여기에 추가되지 않은 사용자 계정이 있는 사용자는 연결할 수 없습니다. Docker 그룹에 사용자 계정을 추가하는 것은 데몬이 항상 루트 사용자로 실행되므로 기능적으로 루트와 동일하다는 점을 명심하십시오. 이는 단일 사용자 Ubuntu Server 시스템에서 예상할 수 있지만 Arch, Fedora 또는 Debian에서 Docker를 실행하는 사용자에게는 확실히 명심해야 할 사항입니다.

방법 1:Docker 서비스 상태 확인

거의 확실하지만 Docker 서비스가 현재 실행 중인지 확인해야 합니다. 터미널 창에서 systemctl status docker.service를 실행합니다. 일반 사용자로서. Docker의 데몬이 할당된 PID 번호에 대한 정보를 얻어야 합니다. 그렇지 않은 경우 서비스를 다시 시작해야 합니다.

다시 시작했다면 "Docker 데몬에 연결할 수 없습니다" 오류가 발생한 모든 작업을 수행해 보십시오. 이제 작동한다면 서비스가 실행되지 않은 것이므로 서비스가 실행되지 않는 이유 외에 다른 것에 대해 걱정할 필요가 없습니다. 안타깝게도 대부분의 경우에는 작동하지 않으므로 이러한 상황에서는 계속 진행해야 합니다.

방법 2:Docker 그룹에 사용자 추가

docker info 실행 일반적으로 "Docker 데몬에 연결할 수 없습니다" 오류가 다시 발생합니다.

이 경우 sudo groupadd docker;를 실행해야 합니다. sudo usermod -aG docker $USER 적절한 그룹에 자신을 추가하려면 usermod가 없어서 오류가 발생하면 sudo groupadd docker;로 실행되도록 명령을 수정할 수 있습니다. sudo gpasswd -a $USER 도커 , 그러나 대부분의 상용급 Linux 배포판은 동일한 도구 세트로 작업하기 때문에 일반적으로 문제가 되지 않습니다. 어떤 경우든 newgrp docker를 실행하세요. 아직 로그인하지 않은 경우 새 도커 그룹에 로그인할 수 있습니다.

이렇게 하면 현재 로그인한 사용자가 항상 추가된다는 점을 명심하세요. 이는 한 명의 사용자와 루트 계정 외에 여러 계정이 없는 대부분의 사람들의 시스템에서는 큰 문제가 되지 않습니다. 당분간 관리 액세스 권한이 입력되어 있으므로 sudo chgrp docker /usr/bin docker;를 실행하세요. sudo chgrp docker /var/run/docker.sock docker 소켓 및 명령에 대한 권한을 수정합니다. 일반적으로 소켓 파일은 루트 사용자에게만 속하므로 이를 수정합니다.

실행한 후에는 이전 명령에서 생성한 것과 동일한 그룹에 속하므로 문제가 발생하지 않습니다. 하지만 sudo 없이 docker가 실행되는지 테스트하고 싶을 것이므로 docker run hello-world를 입력하세요. 일반 사용자로서 다른 오류가 발생하지 않는지 확인하세요.

이 시점에서는 어떤 종류의 오류 메시지도 받는 사용자는 거의 없습니다. 이 시점에서 대부분의 사항이 수정되어야 하지만, 여전히 문제가 있는 경우 완전히 로그아웃하는 것이 좋습니다. 다른 터미널 에뮬레이터 창을 열어 보십시오. 그러나 이것이 작동하지 않는 경우 가능하다면 완전히 다시 시작하기 위해 시스템을 종료하는 것이 도움이 될 수 있습니다.

방법 3:ACL을 사용하여 Docker 메타데이터 수정

루트 사용자처럼 만드는 그룹에 속하고 싶지 않다면 특정 권한으로만 작동하도록 소켓 파일을 설정할 수 있습니다. 이런 방식으로 수행하려는 경우 gpasswd 프로세스를 무시할 수 있습니다. 보안 감사를 수행하는 사람들에게는 파일 시스템에서 다양한 ACL 항목을 검색해야 하지만 이로 인해 docker 그룹을 완전히 사용할 필요는 없습니다.

이 방법으로 수행하려면 sudo setfacl -m user:name:rw /var/run/docker.sock을 실행할 수 있습니다. 사용자와 이름을 적절한 레이블로 바꾸는 동안. 이는 Debian 및 Ubuntu Server에서 작동하는 /var/run/docker.sock의 Docker 소켓에 액세스할 수 있는 권한을 부여합니다.

저자 소개

Linux에서  Docker 데몬에 연결할 수 없습니다  오류 해결

케빈 애로우

Kevin Arrows는 10년 이상의 업계 경험을 보유한 경험이 풍부하고 지식이 풍부한 기술 전문가입니다. 그는 MCTS(Microsoft Certified Technology Specialist) 인증을 보유하고 있으며 최신 기술 개발에 대한 최신 정보를 얻으려는 깊은 열정을 가지고 있습니다. Kevin은 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅과 같은 분야에서 자신의 전문 지식과 지식을 보여주면서 광범위한 기술 관련 주제에 대해 광범위하게 글을 썼습니다. 기술 분야에 대한 그의 공헌은 동료들로부터 널리 인정받고 존경받고 있으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 높은 평가를 받고 있습니다.