티스토리 뷰

728x90
반응형

RHCSA 8 기출문제에서 PODMAN 컨테이너에서 어려움을 갖는 분들이 계시는 거 같아서 작성하는 두 번째 포스팅입니다.

첫 번째 포스팅은  - https://whitestudy.tistory.com/100 -

목차에 1,2,3 은 첫번째 포스팅에 있고요 

이번 포스트 에는 4 , 5를 작성하겠습니다.

목차

1. 컨테이너 동작 원리

2. 컨테이너 기본 실행 ( 설치 , 시작 , 종료 , 이미지 찾기 , 이미지 관리 ,이미지 삭제 )

3. 컨테이 구성 ( 포트 매핑 )

4. 컨테이너 저장장치 연결 

5. 컨테이너 서비스로 관리

 

     


    4. PODMAN - 컨테이너에 호스트 저장장치 연결

    실행 중인 컨테이너에 있는 컨테이너 호스트의 디렉토리르르 마운튼 하여 데이터를 저장할 수 있도록 하기

    이 작업이 필요한 이유는 컨테이너의 데이터들은 컨테이너를 제거하면 해당 데이터들이 사라지게 되는 임시 저장소 이기 때문에

    컨테이너를 다시 사용하게 되면 데이터가 보존되게 하려 하는 목적이다.

    예를 들자면 컨테이너가 DB(Mysql ) 일 때 Database을 저장하고 컨테이너를 삭제하더라도 Database는 살아있으니 다음에 다시 DB를 시작할 때 그대로 불러와 이전에 했던 데이터로 다시 작업할 수 있게 되는 것... 뭐 그런 것이다.

    * 로컬 하드 디스크 파티션, 네트워크 연결된 원격 파일시스템까지 저장장치 연결 가능


    호스트 디렉터리 준비

    호스트 디렉터리에 연결할 때는 컨테이너 내부의 프로세스에서 접근가능 하도록 구성해야 하는데 

    • 소유권 및 권한 
    • SELinux 콘텍스트 

    위 두 가지가 충족되어야 한다.

    컨테이너에서 사용하는 사용자 계정에는 호스트 디렉터리에 대한 액세스 권한이 있어야 하고 , 호스트 디렉터리에도 권한이 있어야 한다.

     

    SELinux 콘텍스트 에는 container_file_t를 사용해야 한다.

    PODMAN에서는 SELinux container_file_t 콘텍스트 유형을 사용하여 컨테이너가 액세스 할 수 있는 호스트 시스템의 파일을 제한하게 된다.

    * SELinux의 보호가 필요한 이유는 시스템에 있는 모든 파일에 대해 root 액세스 권한을 가지게 되고 , 호스트와 다른 컨테이너를 둘사 손상시킬 수 있게 되게 때문이다

     

     

     

     


     

    볼륨 마운트 하기

    호스트 디렉터리를 컨테이너에 마운트 하려면 'podman run ' 명령어에 ' -v ' 옵션을 추가하면 호스트 디렉터리 경로 및 컨테이너 스토리지 경로를 ' : '(콜론)으로 구분해 지정할 수 있다.

    # -v 호스트 디렉토리명 : 컨테이너 디렉토리명:z
    -- volume host_dir:container_dir:z

    Z 옵션을 사용하려면 Podman에서 SELinux container_file_t 콘테스트 유형을 호스트 디렉터리에 자동으로 적용한다.

     

    실습하자면 /home/user라는 호스트의 디렉터리를 컨테이너의 /test/user 디렉터리에 연결하려면 다음과 같이 하면 된다.

    [~]$ podman run -d --name mariadb01 -v /home/user:/test/user:z docker.io/labrary/mariadb
    # -d 옵션으로 백그라운드 실행 --name 옵션으로 mariadb 컨테이너 이름을 mariadb01 로 지정
      -v 옵션으로 host 와 컨테이너의 디렉톨리를 연결 /home/user:test/user:z
      :z 옵션으로 컨텍스트 설정

    Podman 기초 다지기 RHCSA 컨테이너 문제 풀기중에 중요한 부분입니다..

    도커를 명령어는 동일 하니 크게 어렵지는 않으실거에요


     

    마무리

    적용 사례를 스샷으로  같이 올려서 이해를 돕고자 했지만 db의 데이터 파일으르 수정하고 어쩌고 하려면 SQL 문까지 써야 하니... 복잡하다...

    웹서버로 바꾸고 페이지가 열리는지만 확인해도 되지만......

    Podman 기초 다지기 두번째 !

    오늘은 여기까지

     

     

     

    728x90
    반응형
    댓글