도커 대신 Podman 사용하기

Page content

도커 데스크탑 대신 Podman을 쓰는 이유

도커 데스크탑 같은 경우 상업적인 목적으로 사용하려면 유료 버전을 구매해야합니다. 그래서 저는 도커 데스크탑 대신 Podman을 사용합니다.

Podman 설치

설치 도구가 잘 되아있어서 대부분의 경우 한 줄로 설치가 가능합니다.

우분투

sudo apt-get -y install podman

CentOS

sudo yum -y install podman

Alpine Linux

sudo apk add podman

mac OS

brew install podman

Podman 구성

처음엔 Podman 데스크탑을 사용했는데요, 버그가 있는 건지 커맨드라인에서 쓸 때 잘 안되더라구요. 그래서 Podman 데스크탑으로 생성한 machine을 지운 뒤 CLI를 이용해서 다시 초기화해주었습니다. 그러니까 잘 돌아가네요.

podman machine init

이게 끝입니다. 그런데 docker를 사용하려면 도커를 켜야하듯이 Podman도 사용하려면

podman machine start

을 해줘야합니다.

docker compose => podman compose

전 프로젝트별 개발 환경을 docker compose로 관리하는데요, docker와 docker compose는 서로 다른 프로젝트기 때문에 podman과 podman compose도 별개 프로젝트입니다. 별개 프로젝트이므로 별도로 설치해야합니다. 설치는 매우 간단합니다.

pip3 install podman-compose

호환성 이슈

아무래도 docker가 아니다보니 호환성 문제가 있습니다.

vscode devcontainer

별도 설정을 하지 않으면 vscode의 devcontainer가 안 돌아갑니다. 제가 podman이나 docker를 사용하는 목적이 devcontainer였어서 상당히 크리티컬한 이슈였는데요, 다행히도 해결 방법이 있었습니다.

vscode의 settings.json

{
  "remote.containers.dockerPath": "podman-devcontainer-wrapper"
}

을 추가하시고, devcontainer.json

{
  "remoteUser": "vscode",
  "containerUser": "vscode"
}

추가하신 뒤, podman-devcontainer-wrapper라는 실행 파일을

BUILDAH_FORMAT=docker \
PODMAN_USERNS=keep-id \
podman "$@"

이렇게 만들어주시면 됩니다.


Edit: https://twitter.com/ian_ilminMoon/status/1655094135681073154 를 반영해서 도커가 아닌 도커 데스크탑이 유료인 것으로 수정했습니다.