Sudo 없이 Docker 실행 - EC2 서버

나는 sudo 를 사용하여 내 도커를 실행하는 것이 매우 편했습니다. 선호하는 것은 아니지만 sudo 로 명령을 실행한 결과 오류가 발생하는 CI/CD 파이프라인을 실행해야 할 때까지는 선택의 여지가 없었습니다. 기본적으로 docker 명령은 루트 사용자 또는 Docker 설치 프로세스 중에 자동으로 생성되는 docker 그룹의 사용자만 실행할 수 있습니다. sudo 접두사를 붙이지 않거나 docker 그룹에 속하지 않고 docker 명령을 실행하려고 하면 다음과 같은 결과가 표시됩니다.

Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.


이로 인해 솔루션을 얻기 위해 추가로 문제를 해결하게 되었습니다. 이 문서는 특히 서버에서 도커를 실행하면서 이 문제가 발생하는 경우 문제를 해결한 경험에 관한 것입니다.
sudo 를 사용하지 않고 도커를 실행하는 데 필요한 명령을 따른 후에도 EC2 인스턴스에서 도커를 실행했습니다. 내가 접한 많은 기사가 조언했듯이 터미널을 종료하고 터미널로 ssh를 다시 시작하는 것이 아니라 서버를 재부팅해야했습니다. 글쎄, 그것은 다른 사람들에게는 효과가 있었을지 모르지만 나에게는 그렇지 않았습니다. 로컬 터미널에 있는 경우 프로세스를 따른 후 터미널을 닫고 다시 들어올 수 있습니다. 변경 사항이 적용되지만 서버에는 적용되지 않으므로 서버를 재부팅해야 합니다.

또한 아래와 같이 오류가 발생하므로 특히 Jenkins 작업에서 sudo 없이 도커를 실행하는 것이 중요하다는 점을 추가하고 싶습니다.


docker 명령을 실행할 때마다 입력하지 않으려면sudo docker 그룹에 사용자 이름을 추가하십시오. 즉, 다음은 sudo 없이 Docker를 실행하는 단계입니다(EC2 서버 또는 다른 클라우드 공급자 서버의 경우 여전히 강조하고 싶습니다).

  • docker 그룹에 사용자 이름을 추가합니다.

    sudo usermod -aG docker ${USER}
    


  • 새 그룹 구성원을 적용합니다. 제 경우에는 적용하려면 ec2 서버를 재부팅해야 했습니다. 제 서버 사용자에게는 암호가 없었습니다. 사용자에게 암호가 있으면 su - ${USER} 를 실행하십시오. 암호를 입력하라는 메시지가 표시되면 암호를 입력하면 변경 사항이 적용됩니다.
  • 이제 명령groups을 실행하여 사용자가 docker 그룹에 추가되었는지 확인합니다. 이제 그룹 사이에 사용자가 표시되어야 합니다.

  • 이제 sudo 없이 도커를 실행할 수 있습니다. 이것은 저와 위의 단계 직후에 실패한 Jenkins 작업에 효과적이었습니다.

    좋은 웹페이지 즐겨찾기