25장. 특수 컨테이너 이미지 실행
일부 특수 유형의 컨테이너 이미지를 실행할 수 있습니다. 일부 컨테이너 이미지에는 사전 설정된 옵션 및 인수를 사용하여 해당 컨테이너를 실행할 수 있는 runlabels 라는 기본 제공 레이블이 있습니다. podman 컨테이너 runlabel <label
> 명령은 컨테이너 이미지의 < label
>에 정의된 명령을 실행할 수 있습니다. 지원되는 레이블은 설치
,실행
및 제거
입니다.
25.1. 호스트에 대한 권한 열기
권한이 있는 컨테이너와 권한이 없는 컨테이너 간에는 몇 가지 차이점이 있습니다. 예를 들어 toolbox 컨테이너는 권한 있는 컨테이너입니다. 다음은 컨테이너에서 호스트에 열거나 열지 않을 수 있는 권한의 예입니다.
-
권한: 권한 있는 컨테이너는 호스트에서 컨테이너를 분리하는 보안 기능을 비활성화합니다.
podman run --privileged <image_name>
명령을 사용하여 권한 있는 컨테이너를 실행할 수 있습니다. 예를 들어 root 사용자가 소유한 호스트에서 마운트된 파일과 디렉터리를 삭제할 수 있습니다. -
프로세스 테이블:
podman run --pid=host <image_name>
명령을 사용하여 컨테이너에 대한 호스트 PID 네임스페이스를 사용할 수 있습니다. 그런 다음 권한 있는 컨테이너 내에서ps -e
명령을 사용하여 호스트에서 실행 중인 모든 프로세스를 나열할 수 있습니다. 호스트의 프로세스 ID를 권한 있는 컨테이너에서 실행되는 명령으로 전달할 수 있습니다(예:kill <PID>).
-
네트워크 인터페이스: 기본적으로 컨테이너에는 하나의 외부 네트워크 인터페이스와 하나의 루프백 네트워크 인터페이스만 있습니다.
podman run --net=host <image_name>
명령을 사용하여 컨테이너 내에서 직접 호스트 네트워크 인터페이스에 액세스할 수 있습니다. -
프로세스 간 통신: 호스트의 IPC 기능은 권한 있는 컨테이너 내에서 액세스할 수 있습니다.
ipcs
와 같은 명령을 실행하여 활성 메시지 대기열, 공유 메모리 세그먼트 및 세마포어 집합에 대한 정보를 확인할 수 있습니다.