podman desktop 安装
brew install podman
brew install –cask podman-desktop
brew tap slp/krunkit
brew install krunkit
podman desktop 配置
podman machine init
podman machine start
如果报错: 没有 krunkit, 参考上文安装 krunkit
sudo podman-mac-helper install
在 podman desktop 中调整虚拟机内存: (Settings -> Resources -> Podman: edit icon, 修改后 Update);
也可在 init 时指定: podman machine init –cpus 4 –memory=8192
https://medium.com/rahasak/switching-from-docker-desktop-to-podman-on-macos-m1-m2-arm64-cpu-7752c02453ec
https://desktop.podman.org.cn/docs/migrating-from-docker/using-podman-mac-helper
迁移镜像(不成功)
docker save -o open-webui.main.tar ghcr.io/open-webui/open-webui:main
podman load -i open-webui.main.tar
会导致 podman 虚拟机卡死无响应, 停也停不了.
问题太大, 算了, 直接重新拉镜像吧.
卸载 docker desktop
sudo /Applications/Docker.app/Contents/MacOS/uninstall
Uninstalling Docker Desktop…
Error: unlinkat /Users/USER_HOME/Library/Containers/com.docker.docker/.com.apple.containermanagerd.metadata.plist: > operation not permitted
解决: (System Settings > Privacy & Security > Full Disk Access), 给使用的 terminal 授予权限
rm -rf ~/Library/Group Containers/group.com.docker
rm -rf ~/.docker
在应用程序中, 把 Docker Desktop 拖到回收站
参考: https://docs.docker.com/desktop/uninstall/
使用 kind 安装本地 k8s 集群
- 安装 golang 版本管理器 g
cat << EOF >> ~/.zshrc
# 可选。检查g别名是否被占用
if [[ -n $(alias g 2>/dev/null) ]]; then
unalias g
fi
EOF
curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
-
安装 golang
g ls-remote stable
g install 1.24.6
go vesion -
安装 kind
go install sigs.k8s.io/kind@v0.30.0 -
创建 k8s 集群
kind create cluster
参考: https://kind.sigs.k8s.io/
有坑吗?
不出意外的, 有!
podman 容器读取宿主机留下的docker挂载目录时, 存在权限不足问题, 例如 postgresql 留下的数据目录.
如何解决?
- 宿主机上, 为其他用户在目标目录上授予读和执行权限. chmod -R +rx postgre-data (这是宿主目录)
- 进入podman虚拟机中, 修改目录权限
# 在宿主机上, 登录podman虚拟机
podman machine ssh
# 查看挂载点, 并转到目录下
mount
df -h
cd /Users/<hostUserName>/<宿主机挂载目标路径>
# 修改属主
sudo chown -R core:games postgre-data
一般这种就是宿主机挂载点

- 使用一个临时容器复制文件到新建卷上
# 新建数据卷
podman volume create litellm_pg_data
# 复制数据到新建卷
podman run --rm -it
-v "$(pwd)/postgre-data":/host_data
-v litellm_pg_data:/container_data
redis:8.2.1
bash
cp -rp /host_data/. /container_data/
- 使用新建卷启动容器
docker run -d
--name litellm-postgre
-v litellm_pg_data:/var/lib/postgresql/data
-p 5432:5432
-e POSTGRES_PASSWORD=<你的pg密码>
-e LANG=C.UTF-8
postgres:latest
方案的不足: 数据的变更, 将保留在 podman 虚拟机中, 无法再在宿主目录中保留.















暂无评论内容