ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PODMAN: Copy와 Volume Mount
    공부합시다!/Container 2022. 12. 19. 00:11
    728x90

    podman 역시 docker와 같이 파일및 디렉토리 복사와 volume mount 기능을 제공합니다.

    물론 옵션 역시 동일합니다.

     

    헌데 한 가지 생각하셔야 할 점이 있습니다. - docker 역시 동일

    파일 카피는 1회성 작업등에만 사용하시고 지속적인 data 업데이트 (예: Web Site변경)나 

    Container의 Life Cycle을 갖는 중요 데이터(예: MySQL등에서 관리하는 Database)는 Volume Mount 방식으로

    활용을 해야 한다는 점입니다. - 둘의 차이가 극명하지요.

     

    해서 오늘은 DB Connection이 가능한 아주 단순한 Web App를 제공해서

    파일 복사 방식과 볼륨 마운트 방식으로 활용하는 방법을 포스팅 합니다.

     

    필요한 파일 4개는 첨부해 놓았습니다.

    1. index.php -> Main page입니다. DB에 test라는 database를 생성하면 정상 페이지가 나타납니다.

    2. person.php -> 아주 간단한 회원 가입 page 입니다.

    3. insert.php -> person.php 작성한 data 값을 DB로 전달합니다.

    4. table.php -> database에 존재하는 회원을 정보를 Web으로 출력합니다.

     

    아주 자세하게 실습을 진행합니다.

    1. 파일 복사

     1.1. 해당 파일을 바탕화면으로 옮겨놓습니다.

     1.2. scp를 이용하여 파일들을 podman이 실행하는 가상머신으로 복사합니다.

     1.3. upload한 파일을 확인합니다.

     1.4. mysql:5.7 image를 다운로드 한후 Container를 실행합니다. 외부 노출은 하지 않으니 기본 포트 사용합니다.

     

     1.5. polinux/httpd-php image와 mysql:5.7 image를 다운로드 합니다. (httpd와 php모두 구성되어 있는 image)

     

     1.6. port 62080으로 설정하여 container 실행, 이름은 p1

     1.7. mysql:5.7 즉 m1 Container의 IP 정보를 확인합니다.

     

     1.8. polinux/httpd-php 즉 p1 Container의 설정 정보 확인

     

     1.9. m1 Container의 db 구성을 위해서 mysql clinet 리포지토리 다운로드

     

     1.10. 설치한 mysql의 리포지토리 gpgcheck부분을 0을 수정 후 mysql client 설치

     

     1.11. mysql client 프로그램을 이용하여 m1 Container에 접속

     

     1.12. main page에서 사용할 test 데이터 베이스 생성

      1.12.1. 회원가입 및 조회에서 사용할 member 데이터베이스 생성 및 테이블및 칼럼생성

     

     1.13. index.php 파일 설정 변경, 그외 나머지 파일들도 IP를 m1 Container로 변경하는 작업 진행

     

     1.14. 변경한  4개의 php 파일을 p1 Container의 /var/www/html 디렉토리로 복사합니다.

     

     1.15. p1 container에 exec로 bash를 실행합니다.

     

     1.16. 시작페이지를 index.php로 변경합니다.

     

     1.17. http://가상머신IP:포트번호  로 접속합니다. 

     

     1.18. http://가상머신IP:포트번호/person.php   회원가입페이지 접속 후 정보 입력

     

     1.19. 회원가입 클릭 후 테이블 조회 클릭

     

     1.20. 입력한 값이 정상적으로 출력되면 DB 와의 연동 작업이 끝이 납니다.

     

    2. Volume 연결

     2.1. 헌데 파일을 복사하는 경우 web사이트에 변경이 생기면 계속 복사를 해야하는 부담스런 작업이 있습니다.

     2.2. 따라서 이런 경우는 volume을 Mount에서 사용을 하면 변경이 생길 경우 local파일을 변경하면 같이 mount된 Container의 파일에도 동일한 변경이 발생함으로 파일 복사등의 부담스런 작업을 피할 수 있는 장점이 있습니다.

     

     2.3. 디렉토리 생성 및 4개의 php파일을 해당 디렉토리 복사 후 polinu/httpd-php를 이용해 p2 Container 실행

     2.4 이때 포트는 p1과 다른 63080을 사용합니다.

     

     2.5. php 파일의 포트를 모두 63080으로 변경합니다.

     

     2.6. http://가상머신IP:63080으로 main 페이지에 접속

     

     2.6. http://가상머신IP:63080/person.php  으로 회원가입 페이지에 접속

     2.7. 하단의 테이블 조회를 클릭해 가입정보가 정확히 출력되는지 확인합니다.

     

     2.8. 가상머신의 (주의 컨테이너 아님) /root/html 디렉토리의 index.php파일을 수정합니다.

     

     2.9 변경한 페이지가 바로 적용되는지 확인하세요

     

    9. data내용 변경시 어떤 점이 더 편리한지, 그리도 database를 container별개로 재사용할 수 있는 지 생각해 보세요.

    728x90

    '공부합시다! > Container' 카테고리의 다른 글

    Docker: cp & tar 다중 파일 복사  (0) 2023.01.05
    PODMAN: Network  (0) 2022.12.20
    PODMAN: Registry와 Search  (0) 2022.12.16
    Docker : Network  (0) 2022.12.15
    PODMAN: POD 구성 및 wordpress + mysql  (0) 2022.12.15
Designed by Tistory.