티스토리 뷰

반응형

M1 Mac 환경에서 podman 사용한 내용을 정리해보고자 한다.

다음에 까먹으면 다시 보기 위해서…

 

사실 docker 사용법을 안다면 거의 똑같다고 봐도 될 것 같다.

그냥 설치 및 초기설정 몇가지 방법만 다르다.

  • 그렇기에 다 설치완료가 되면 아예 podman을 docker로 alias 설정해두고 사용하는 경우가 많은듯하다.

 

podman 설치

brew 기반으로 설치했다.

$ brew install podman
$ brew install podman-compose # for docker-compose
$ brew install podman-desktop # for docker d

 

 

초기 설정

Mac에서는 podman client/server로 나뉘어 동작하는 것으로 보인다.

이에 machine을 초기화, 동작시켜줘야 한다.

$ podman machine init
$ podman machine start
$ podman info # 아래처럼 안나오면 podman 실행이 제대로 되지 않은 것
host:
  arch: arm64
  buildahVersion: 1.28.0
  cgroupControllers:
  - cpu
  - io
  - memory
  - pids
...

 

 

Image search, pull

container image 검색을 지원한다.

$ podman search mysql
NAME                                     DESCRIPTION
docker.io/library/mysql                  MySQL is a widely used, open-source relation...
docker.io/library/mariadb                MariaDB Server is a high performing open sou...
docker.io/library/percona                Percona Server is a fork of the MySQL relati...
docker.io/library/phpmyadmin             phpMyAdmin - A web interface for MySQL and M...
docker.io/circleci/mysql                 MySQL is a widely used, open-source relation...
docker.io/bitnami/mysql                  Bitnami MySQL Docker Image
docker.io/bitnami/mysqld-exporter
docker.io/ubuntu/mysql                   MySQL open source fast, stable, multi-thread...
docker.io/cimg/mysql
...

 

검색된 것을 기반으로 image를 pull 받을 수 있다.

  • docker.io/library/ 는 생략이 가능
$ podman pull docker.io/library/mysql
Trying to pull docker.io/library/mysql:latest...
Getting image source signatures
Copying blob sha256:6fb44db361f7e1027fb0010e8a3447c6e9337f6685ab4901f57030d01f730f74
Copying blob sha256:12a06ca91af857ea3cb02aedc5c643c5f06865868ae5c386c8ea664be60ead7e
Copying blob sha256:1fec1cb1944f64443d61a29e94cddba36d0cb8a09c80e0247375445bc62b842e
...

 

M1 기반이다보면 Arm 아키텍처이다보니 image를 pull 받을 때 다음과 같은 오류가 나오곤 한다.

이런 경우, platform을 지정해주면 된다.

$ podman pull docker.io/library/mysql:5.7
Trying to pull docker.io/library/mysql:5.7...
Error: choosing an image from manifest list docker://mysql:5.7: no image found in manifest list for architecture arm64, variant "v8", OS linux

$ podman pull docker.io/library/mysql:5.7 --platform=linux/amd64
Resolving "mysql" using unqualified-search registries (/etc/containers/registries.conf.d/999-podman-machine.conf)
Trying to pull docker.io/library/mysql:5.7...
Getting image source signatures
Copying blob sha256:2e747e5e37d77f3d8331753fc4c4eb0b0e5af8648ee5b2eec8fa274ebdddb475
...

 

 

실행, 종료, 로그, 제거

사실 이 부분은 docker cli 사용법과 동일하다.

# container 실행
$ podman run -d -p 3306:3306 docker.io/library/mysql:5.7

# container 실행/종료 목록 조회
$ podman ps -a

# container log 조회
$ podman logs {container id}

# container 종료
$ podman stop {container id}

# container 제거
$ podman rm {container id}

# container image 제거
$ podman rmi docker.io/library/httpd

 

 

podman-compose

docker compose를 대체하기 위해 podman에서도 나온 기능이다.

사실 사용법은 유사한데, 조금씩 지원되지 않는 부분(차이)도 있는 것 같다.

  • 예를 들어, platform 필드는 지원하지 않는다. (Issue)
    • 이 부분은 직접 platform에 맞는 container image를 pull 받은 후 실행하니 잘 된다.

 

프로젝트를 보니 제대로 케어하지 않는 프로젝트인 것 같기도 하다. (약간 시도적인 프로젝트 느낌)

  • 조심스럽게 사용하거나, kubernetes로 가거나 …
# docker-compose.yml이 있다는 가정하에
$ podman-compose up -d

# 이것도 마찬가지로 docker-compose 문법과 유사하므로 생략

 

⬇️ 참고용 mysql 5.7 docker compose yaml 

더보기
version: '3'
services:
  mysql:
    image: mysql:5.7
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: admin
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - /Users/user/Documents/lab/mysql/data:/var/lib/mysql --user 1000

 

 

 

podman desktop

podman cli로 실행하고 나면 다음과 같이 podman desktop에서 확인할 수 있다.

Create container, Pull/Build image 같이 CLI 단에서 동작하는 것을 UI를 통해 진행할 수도 있다.

그리고 Kubernetes, Pod 등 추가적인 기능들도 존재한다.

간단하게 모니터링 하는 용도로 적절한 듯하다.

 

 


여기까지지만 사용하면서 이슈가 있으면 계속 추가 할 예정이다.

320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함