간편한 MacOS에 입문한podman

6150 단어 Podman
개요
  • 과거 맥OS의podman문에 들어가려다가 지뢰를 많이 밟아서 좌절
  • 3.2.x에서macOS까지podman의 실행 환경을 쉽게 만들 수 있습니다. 흥분되는 정보를 알았기 때문에 다시 한 번 입문을 시도합니다
  • 출전: 빨간 모자 엔지니어 블로그: [podman machine] MacOS에서 Podman의 새로운 명령을 실행하는 소개감사합니다!!
  • 출처의 글을 참고하여 검증한 것이므로 상세히 알고 싶으신 분들은 참조
  • 검증된 환경
    작업 중 사용하는 터미널을 상상하고 맥OS로 검증합니다
    MacOS 버전
    $ sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.15.7
    BuildVersion:   19H1417
    
    Podman 가져오기
  • podman은 docker와 마찬가지로 linux 용기를 기반으로 하는 기술이기 때문에 실행할 때 Linux
  • 가 필요합니다.
  • 터미널이 Linux라면 Local의podman engine를 통해 조작할 수 있음
  • macOS/Windows에서 실행할 때 원격 리눅스에 연결하고 engine를 사용하는 옵션
  • Podman 명령 설치
    brew 설치 명령을 사용하기 어려워요.
    $ brew install podman
    ※ podmanのインストールの依存関係で QEMU も同時にインストールされる
    
    podman 버전 확인
    $ podman --version
    podman version 3.3.1
    
    podman의 종속성 패키지(QEMU) 확인
    $ brew deps --1 podman
    qemu
    
    podman 명령 동작 확인
  • 동작 확인에서 실행podman info 오류가 발생하지만 이것은 맥OS이기 때문에 네이티브의podman은 동작하지 않습니다
  • 명령의 두드리기 확인
  • $ podman info
    Error: cannot connect to the Podman socket, please verify that Podman REST API service is running: Get "http://d/v3.3.1/libpod/_ping": dial unix ///var/folders/xs/12nb8v4d295gj67gvymq3gldq44_nd/T/podman-run--1/podman/podman.sock: connect: no such file or directory
    
    remote의podman에 연결 항목이 없습니다
    $ podman system connection list
    
    remote의 podman engine 준비
  • 옛 공식 프로그램에서는 boot2 podman+virtualbox를 통해 환경을 만드는 절차였으나 지금은 추천하지 않습니다
  • 개념상 docker-machine과 같기 때문에 원격 호스트가Fedora를 가져올 수 있다면 물리적으로 분리할 수 있다
  • Vagrant의box 이미지가 공식적으로 지원되기 때문에 기존의Vagrant의 자산을 활용할 수 있다
  • 최신 QEMUpodman machine를 사용하는 옵션이 준비되어 있음
  • podman machine을 통해 QEMU 인스턴스 설정
  • podman machine init 명령을 사용하여 초기 설정
  • podman machiin이 실행하는Fedora CoreOS의 가상 기기 이미지(qcow2)
  • 다운로드
    $ podman machine init
    Downloading VM image: fedora-coreos-34.20210904.1.0-qemu.x86_64.qcow2.xz: done
    Extracting compressed file
    
    다운로드된 이미지는 다음 경로로 관리됩니다
    $ ls -l ~/.local/share/containers/podman/machine/qemu/
    total 2212480
    -rw-r--r-- 1 tigerroll  631490316  9 19 15:31 fedora-coreos-34.20210904.1.0-qemu.x86_64.qcow2.xz
    -rw------- 1 tigerroll 1613824000  9 19 15:40 podman-machine-default_fedora-coreos-34.20210904.1.0-qemu.x86_64.qcow2
    
    podman machine이 실행되지 않은 상태LAST UP에서 지난 시간 표시
    $ podman machine ls
    NAME                     VM TYPE     CREATED        LAST UP
    podman-machine-default*  qemu        2 minutes ago  2 minutes ago
    
    podman machine 시작
    $ podman machine start
    INFO[0000] waiting for clients...
    INFO[0000] listening tcp://0.0.0.0:7777
    INFO[0000] new connection from  to /var/folders/xs/12nb8v4d295gj67gvymq3gldq44_nd/T/podman/qemu_podman-machine-default.sock
    Waiting for VM ...
    qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]
    
    제대로 부팅되었는지 확인 가능
    $ podman machine ls
    NAME                     VM TYPE     CREATED         LAST UP
    podman-machine-default*  qemu        34 minutes ago  Currently running
    
    podman machine과의 연결 설정
  • podman machine에 대한 연결 입구 증가
  • 확인
  • 시작 시 자동으로 추가되며 이미지를 삭제하면 자동으로 항목 삭제
  • $ podman system connection list
    Name                         Identity                                              URI
    podman-machine-default*      /Users/tigerroll/.ssh/podman-machine-default  ssh://core@localhost:62746/run/user/1000/podman/podman.sock
    podman-machine-default-root  /Users/tigerroll/.ssh/podman-machine-default  ssh://root@localhost:62746/run/podman/podman.sock
    
    여기podman info에 도착하면 podman machine의 상태를 확인할 수 있습니다.
    $ podman info
    host:
      arch: amd64
      buildahVersion: 1.22.3
      cgroupControllers: []
      cgroupManager: systemd
      cgroupVersion: v2
    ...
    
    podman machine 버전 정보도 얻을 수 있습니다.
    $ podman version
    Client:
    Version:      3.3.1
    API Version:  3.3.1
    Go Version:   go1.17
    Built:        Tue Aug 31 04:15:26 2021
    OS/Arch:      darwin/amd64
    
    Server:
    Version:      3.3.1
    API Version:  3.3.1
    Go Version:   go1.16.6
    Built:        Tue Aug 31 05:46:36 2021
    OS/Arch:      linux/amd64
    
    podman으로 container 시작하기
  • 동작 확인에 익숙한nyanceat
  • nyancet이 표시되면 동작 확인 OK(CtrL-C로 중지)
  • 조작과 docker는 큰 차이가 없기 때문에 손대기 쉽다
  • $ podman run -it --rm docker.io/supertest2014/nyan
    

    macOS에서 podman machie 환경을 만든 소감.
  • QEMU를 사용하여 쉽게 Podman을 만들 수 있어서 정말 감사합니다!!
  • 터미널의 자원이 넉넉하지 않은 상황에서 원격 Fedora를 준비하여 연결 설정을 바꾸고podman을 실행할 수 있기 때문에 이 방법을 시험해 보고 싶다
  • 쉬워졌기 때문에 이 버전부터 본격적으로podman으로 갈아타는 사람이 늘어날 것 같다
  • 좋은 웹페이지 즐겨찾기