如果 … 阅读全文
如果 apt 安装的版本能跑起来你需求的容器的话,也可以从源安装。
所以你知道我为什么推荐 Alpine 了。
容器管理
root@container:~/appdata# pwd
/root/appdata
root@container:~/appdata# ls
gitea halo homepage qinglong vaultwarden
我在 root 用户目录下创建了一个 appdata 文件夹,专门用来存放 docker 数据,每一个子文件夹就是一个项目,所有的目录都按相对路径映射:
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
restart: always
ports:
- 7556:3000
volumes:
- ./config:/app/config # Make sure your local config directory exists
- ./images:/app/public/images
# - /var/run/docker.sock:/var/run/docker.sock
备份数据或者迁移数据,仅需要把整个 appdata 文件夹打包带走即可。
关于网络模式:如果没有端口冲突,建议一律使用 host 模式,提升网络性能,不过感知其实不强。
Pod
Podman 的 Pod 是将多个容器按 Kubernetes Pod 模型组织的逻辑单元,共享网络、IPC 等命名空间与资源约束,可统一启停、监控与迁移,适合本地开发 / 测试与 K8s 无缝衔接,支持 root/rootless 模式。
Pod 是“容器组合单元”(共享资源、同生命周期),docker-compose 是“多容器编排工具”(定义依赖、独立资源),定位和使用场景完全不同。docker-compose 实际上只是把多个容器按某种依赖关系进行启动并让它们协同工作,理论上你手动启动也能达成相同的效果。
但 Pod 想让多个容器“绑在一起”(共享网络、同步启停)。但你用 podman-compose 启动 docker/podman-compose.yml 文件时,实际上是创建了一个 Pod 来对这些容器进行管理,与 docker 的启动逻辑是不同的。
❯ podman pod list
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
2328926f0329 pod_media Running 3 hours ago 3
❯ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36f7b762350a docker.io/iyuucn/iyuuplus-dev:latest 3 hours ago Up 3 hours 8780/tcp IYUUPlus
2ebe6acec90b docker.io/jxxghp/moviepilot-v2:latest 3 hours ago Up 3 hours 3000/tcp moviepilot-v2
a2e0ee331fe5 docker.io/cnk3x/xunlei:latest /bin/xlp 3 hours ago Up 3 hours xunlei
其中 pod_media 这个 Pod 是 podman 根据文件夹目录自行创建的,docker-compose.yml 的编写方法与 docker 几乎一致。
至于你选择用 podman 还是 docker,根据自己的喜好进行选择即可。
使用 PVE 9.1 新增的 OCI 功能

这个功能还处于初级阶段,管理方式也与一般的 docker compose 差别较大,现阶段不推荐使用 收起

