루트리스 도커

Luteuliseu Dokeo



Docker는 최신 애플리케이션 개발 및 배포를 위한 가장 강력하고 영향력 있는 도구 중 하나입니다. 개발자로서 우리는 로컬 컴퓨터에서 이를 사용하여 애플리케이션 요구 사항에 맞는 환경을 몇 초 만에 빠르게 설정하고 구성합니다.

그러나 Docker에서 작업할 때 Docker 리소스를 생성하고 사용해야 하지만 루트 액세스 권한이 없는 인스턴스가 발생할 수 있습니다.

또는 모든 사용자에게 루트 권한을 부여하지 않고 특정 시스템의 여러 사용자가 Docker에 액세스하고 사용하도록 허용하려고 할 수도 있습니다.







이 튜토리얼에서는 루트 없는 Docker에 대해 알아보고, Docker의 의미, 작동 방식, 루트 액세스 권한이 없는 사용자가 Docker 및 관련 서비스를 사용할 수 있도록 허용하는 방법을 알아봅니다.



루트리스 도커란 무엇입니까?

기본적으로 Docker를 설치하면 Docker 데몬과 해당 도구를 사용하려면 호스트 시스템에 대한 루트 권한이 필요합니다. Docker가 손상되면 공격자에게 루트 액세스 권한이 부여될 수 있어 보안 위험이 크게 발생할 수 있습니다.



Rootless Docker는 루트 권한 없이 Docker 데몬과 관련 컨테이너를 사용하고 실행할 수 있게 해주는 기능입니다.





작동 방식

루트 없는 Docker 환경의 기술적 작업을 자세히 알아보는 것이 어려울 수 있지만 다음은 루트 없는 Docker가 수행하는 작업과 내부적으로 작동하는 방식을 설명하는 상위 수준 개요입니다.

사용자 네임스페이스 – 루트 없는 도커가 활용하는 중요한 기능 중 하나는 사용자 네임스페이스입니다. Linux 커널의 이러한 기본 기능을 사용하면 프로세스가 외부와 비교하여 네임스페이스 내부에서 다른 사용자 및 그룹 ID를 가질 수 있습니다. 이는 프로세스가 네임스페이스 내부에서는 루트 사용자로 실행될 수 있지만 그 외부에서는 일반 사용자로 실행된다는 의미입니다.



네트워킹 – 루트 없는 Docker의 다음 기능은 네트워킹입니다. 기본적으로 일반 docker 데몬은 루트 권한이 필요한 iptables 및 브리지와 같은 네트워킹 스택에 의존합니다.

Docker는 루트 없는 Docker에서 사용자 모드 TCP/IP 스택을 제공하는 slirp4netns와 같은 기능을 활용합니다. 이를 통해 Docker는 호스트 시스템에 대한 루트 권한 없이 네트워크에 액세스할 수 있습니다.

저장 – 루트 없는 도커의 다음 필수 부분은 스토리지 드라이버입니다. 기본적으로 Docker는 짐작할 수 있듯이 루트 권한이 필요한 overlay2 스토리지 드라이버를 사용합니다. 대신 루트 없는 도커 인스턴스는 퓨즈-오버레이fs 드라이버를 사용합니다. 이 드라이버는 루트 권한 없이 마운트할 수 있는 FUSE 오버레이 fs를 기반으로 합니다.

위 내용은 루트 없는 도커 인스턴스의 필수 구성 요소 중 일부입니다. 이것은 뿌리 없는 도커의 전체 작동을 탐색하지 않는다는 점을 기억하십시오. 자세한 내용은 설명서를 참조하세요.

루트리스 도커 – 요구사항

이론에서 벗어나 루트 없는 Docker 환경을 만들고 구성하는 방법을 알아봅시다.

이 게시물을 따라가려면 다음 사항이 있는지 확인하세요.

  1. 루트 권한이 있는 Linux 기반 시스템입니다.
  2. 네트워크 액세스.

UIDMap으로 시스템 구성

Docker를 설치하고 구성하기 전에 uidmap 유틸리티를 사용하여 시스템을 설치하고 구성해야 합니다.

UIDMap을 사용하면 사용자 네임스페이스 콘텐츠에서 Linux 시스템 프로세스의 UID 및 GUI 매핑을 관리할 수 있습니다. 뿌리 없는 Docker가 사용자 네임스페이스를 활용한다고 언급했던 것을 기억하시나요? 이 도구를 사용하면 UID 및 GID 매핑과 해당 네임스페이스를 지정할 수 있습니다.

다음과 같이 시스템 패키지를 새로 고쳐서 시작하십시오.

$ sudo 적절한 업데이트 받기

다음으로, 다음과 같이 uidmap 유틸리티를 설치합니다.

$ sudo 적절한 설치 UIDMAP -그리고

루트리스 도커 설치

다음 단계는 루트리스 Docker를 처리하고 설치하는 것입니다. 아래에 설명된 간단한 단계를 따르면 이를 수행할 수 있습니다.

아래 표시된 링크에서 루트 없는 Docker 설치 프로그램 스크립트를 다운로드하여 시작하십시오.

https://get.docker.com/rootless

cURL 또는 WGET을 사용할 수 있습니다.

$ 곱슬 곱슬하다 -sSL https: // get.docker.com / 뿌리 없는 |

위 명령은 루트 사용자로 실행할 수 없습니다.

설치가 완료되면 원하는 텍스트 편집기를 사용하여 .bashrc 파일을 편집하세요.

$ 나노 .bashrc

그런 다음 bashrc 구성 파일에 다음 항목을 추가합니다.

내보내다 XDG_RUNTIME_DIR = / / 우분투 / .docker / 달리다

내보내다 = / / 우분투 / 큰 상자: $PATH

내보내다 DOCKER_HOST =유닉스: /// / 우분투 / .docker / 달리다 / 도커.양말

사용자를 'ubuntu'에서 Docker를 설치하려는 사용자로 변경했는지 확인하세요. 스크립트 출력에는 .bashrc 파일에 추가할 내용이 제공됩니다.

변경 사항을 저장하고 편집기를 닫습니다.

다음 단계에서는 루트 없는 Docker 데몬을 시작해야 합니다. 아래 명령과 같이 systemctl을 사용하여 이 작업을 수행할 수 있습니다.

systemctl --우분투 도커 시작

일단 시작되면 Docker 명령을 사용하여 Docker 컨테이너를 시작하고 구성할 수 있습니다.

결론

이 튜토리얼에서는 루트 없는 Docker의 기능, 작동 방식, Linux 시스템에서 이를 구성하는 방법을 배웠습니다. 자세한 내용은 rootless docker 문서를 확인하세요.