검색

1.8. rootless 컨테이너에 대한 특별 고려 사항

download PDF

루트가 아닌 사용자로 컨테이너를 실행할 때 고려해야 할 몇 가지 사항이 있습니다.

  • 호스트 컨테이너 스토리지의 경로는 root 사용자(/var/lib/containers/storage) 및 루트가 아닌 사용자($HOME/.local/share/containers/storage)에 따라 다릅니다.
  • rootless 컨테이너를 실행하는 사용자에게는 호스트 시스템에서 다양한 사용자 및 그룹 ID로 실행할 수 있는 특별 권한이 부여됩니다. 그러나 호스트에서 운영 체제에 대한 루트 권한이 없습니다.
  • /etc/subuid 또는 /etc/subgid 를 수동으로 변경하는 경우 podman system migrate 명령을 실행하여 새 변경 사항을 적용해야 합니다.
  • rootless 컨테이너 환경을 구성해야 하는 경우 홈 디렉터리($HOME/.config/containers)에 구성 파일을 생성합니다. 구성 파일에는 storage.conf (스토리지 구성용) 및 containers.conf (다양한 컨테이너 설정의 경우)가 포함됩니다. registries.conf 파일을 생성하여 Podman을 사용하여 이미지를 가져오거나 검색하거나 실행할 때 사용할 수 있는 컨테이너 레지스트리를 식별할 수도 있습니다.
  • 루트 권한 없이 변경할 수 없는 일부 시스템 기능이 있습니다. 예를 들어 컨테이너 내부에 SYS_TIME 기능을 설정하고ntpd(네트워크 시간 서비스)를 실행하여 시스템 시계를 변경할 수 없습니다. rootless 컨테이너 환경을 우회하고 root 사용자의 환경을 사용하여 해당 컨테이너를 root로 실행해야 합니다. 예를 들면 다음과 같습니다.

    # podman run -d --cap-add SYS_TIME ntpd

    이 예에서는 ntpd 가 컨테이너 내부뿐만 아니라 전체 시스템의 시간을 조정할 수 있습니다.

  • rootless 컨테이너는 1024 미만의 포트에 액세스할 수 없습니다. 예를 들어, rootless 컨테이너 네임스페이스 내에서는 컨테이너에서 httpd 서비스에서 포트 80을 노출하는 서비스를 시작하지만 네임스페이스 외부에서는 액세스할 수 없습니다.

    $ podman run -d httpd

    그러나 해당 포트를 호스트 시스템에 노출하려면 컨테이너에 root 사용자의 컨테이너 환경을 사용하는 root 권한이 필요합니다.

    # podman run -d -p 80:80 httpd
  • workstation 관리자는 사용자가 1024 미만의 포트에 서비스를 노출할 수 있지만 보안상의 영향을 이해해야 합니다. 예를 들어 일반 사용자는 공식 포트 80에서 웹 서버를 실행하고 외부 사용자가 관리자가 구성했다고 판단할 수 있습니다. 이 작업은 워크스테이션에서 테스트할 수 있지만, 네트워크로 액세스할 수 있는 개발 서버에 적합하지 않을 수 있으며, 프로덕션 서버에서는 이 작업을 수행하면 안 됩니다. 사용자가 포트 80에 대한 포트에 바인딩할 수 있도록 하려면 다음 명령을 실행합니다.

    # echo 80 > /proc/sys/net/ipv4/ip_unprivileged_port_start

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.