사용자를 삭제하지 않고 "루트 없이" Docker를 제거하는 방법은 무엇입니까?

사용자를 삭제하지 않고 "루트 없이" Docker를 제거하는 방법은 무엇입니까?

현재 Docker는 시작 시 옵션을 제공하는 Docker 설치 프로그램을 통해 최소한 두 가지 방법으로 설치할 수 있습니다.

  1. 레거시 모드( docker루트에서 실행 또는 사용 sudo docker)
  2. 또한루트리스 모드(루트 및 sudoer가 아닌 곳에서 docker 실행)

어떤 사람들은 실수로 현재 사용자(예: id:gid 1000:1000)에 "루트 없이" Docker를 설치하고 "이것이 일반 사용자로부터 Docker를 실행하는 옵션입니다 sudo docker"라고 생각하다가 잘못된 선택을 했다는 사실을 알고 다시 돌아가고 싶어합니다. 레거시 버전으로 전환했는데(보너스 포인트: 해당 사용자를 삭제할 필요가 없음) 바인드 마운트가 항상 root:root컨테이너 내부에 설치되기 때문에 더 이상 워크플로와 호환되지 않는다는 것을 발견했습니다.기본 그룹이 아닌 액세스 권한이 있는 루트 없는 Docker에서 권한이 거부되었습니다.).

레거시 Docker를 제거하는 방법에 대한 문서가 있지만 사용자를 유지하면서 기존 사용자로부터 루트 없는 버전을 제거하는 것만으로는 충분하지 않은 것 같습니다(참조https://github.com/docker/docker-install/issues/166).

질문:

사용자로부터 "Docker rootless"를 제거하고 해당 사용자를 유지하는 방법은 무엇입니까? 예를 들어 Ubuntu 또는 Debian 기반 시스템에서요?

목적: 일반 Docker로 전환하고 사용자를 유지합니다. 감사해요!


위의 질문에 대해 "Docker 컨텍스트"를 변경하는 등 다양한 의견을 시도했지만 왠지 이것만으로는 충분하지 않았습니다. 아니면 어쨌든 내 목표를 달성하기 위한 최소한의 순서가 무엇인지 알 수 없습니다. 나는 이 질문에서 많은 팁을 따랐습니다. 최소한 Ubuntu 또는 Debian 기반 시스템에서는 최소 단계를 아는 것이 가장 좋습니다.

추가 지침:

답변1

저도 오늘 이 문제를 겪었고 매우 실망스러웠으며 어떤 제안도 효과가 없었지만 해결했습니다. 우선, "rootless는 시스템 패키지를 사용하지 않습니다"라는 GitHub 문제의 설명이 잘못되었습니다. docker는 apt를 통해 설치되었습니다. 왜 이 문제가 발생하는지, 왜 문제를 해결하기 위해 조치를 취해야 하는지 이해할 수 없지만 간단합니다.

  • 도커를 제거합니다:sudo apt remove docker* containerd*
  • 재시작! Docker를 제거한 후에도 dockerd-rootless다시 시작할 때까지 백그라운드에서 계속 실행됩니다.
  • apt 패키지에서 도커를 다시 설치합니다(저는https://get.docker.com스크립트)
  • DOCKER_HOST=unix:///var/run/docker.sock추가하다.bashrc

내가 말했듯 DOCKER_HOST이 왜 여기에 설정해야 하는지 잘 모르겠습니다. 기본적으로 루팅되지 않은 경우 내 환경에는 존재하지 않으며 처음부터 Docker가 루팅된 다른 서버에는 이 서버가 없습니다. 하지만 지금은 작동하므로 이것이 도움이 되기를 바랍니다!

관련 정보