惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cybersecurity and Infrastructure Security Agency CISA
D
Darknet – Hacking Tools, Hacker News & Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Securelist
P
Palo Alto Networks Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
H
Hacker News: Front Page
AWS News Blog
AWS News Blog
Latest news
Latest news
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
The Hacker News
The Hacker News
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
O
OpenAI News
P
Proofpoint News Feed
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Security Latest
Security Latest
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题
博客园 - 叶小钗
L
LINUX DO - 最新话题
Martin Fowler
Martin Fowler
N
News | PayPal Newsroom
Project Zero
Project Zero
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
月光博客
月光博客
IT之家
IT之家
Recent Announcements
Recent Announcements
T
The Exploit Database - CXSecurity.com
D
DataBreaches.Net
J
Java Code Geeks
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

陈陈菌博客

如何在 podman 容器内使用 systemd 在 podman 运行 GUI 应用的经验总结 用 xdg-dbus-proxy 解决容器的文件选择器的问题 解决 VSCodium 或 Code-Server 无法安装 GitHub Copilot 问题 不可变发行版 Fedora Silverblue 的体验记录 解决 apt 或 dnf 无法 tab 补全的问题 对 (MPA) 多页面切换实现丝滑动画的探索 让服务在非 Root 权限下使用 80 或 443 端口 AppImage 应用打包快速上手 Flatpak 使用和应用打包快速上手 如何用 webSocket 实现一个实时聊天应用 Linux 内核编译 | 快速上手 | deb 使用 debootstrap 构建 Debian 系根文件系统 高度可定制的 KDE 窗口装饰器 klassy 有关 docker、podman、nspawn、bwrap 的 Linux 容器图形性能测试 创建任意 Linux 容器并支持 GUI 程序 (Docker) 创建任意 Linux 容器并支持 GUI 程序 (nspawn) 文件同步工具 rsync 的使用 玲珑 (Linyaps) 应用打包 RPM 打包指南 | 精简版 PBR 材质的各种贴图类型入门 APU | Stable-Diffusion 使用记录 如何在 Electron 上启用 WebGPU Grub 主题安装与配置 Fcitx5 主题安装与自定义 不使用 Nginx 的网站开发指南 如何自制一个简易的资源监控程序 SQL 常用 CRUD 语法记录 Debian 打包入门,与需要注意的问题 在 fedora 建立一个 Arch 容器 (bwrap) 在 fedora 上建立一个 debian 容器 (bwrap) i3wm | 自制一个极简的屏幕亮度调节器 在 Linux 下启用内存压缩技术 zram 搭建一个本地轻量级聊天 Ai 我又又又重新上线了博客 如何通过命令行管理 wine 容器 (包括 proton) Btrfs 文件系统创建 swap 文件的方法 如何创建适用于 Linux 桌面的程序启动文件 在 Linux 控制 intel CPU 调度的方法 Arch Linux 的基本安装
管理 podman 容器与镜像的导入或导出
GlumiStudio@ · 2026-05-28 · via 陈陈菌博客

2026-05-28 17:21:00

分类: Linux 标签: 容器


如何从零开始镜像的制作

想要创建一个容器,就首先得有镜像,而镜像怎么来呢,我们可以通过 podman build 的命令去构建基础镜像,

类似这样

podman build -t myapp:base <dockerfile的路径>

这里的 -t myapp:base 是镜像名和标签名,如果你知道 docker 的话,dockerfile 就不展开说了,而 podman 可以兼容 docker 的构建文件(非常强大)。

执行完后接下来在 podman images 就可以发现新增了自己的镜像,这是其中一种镜像导入方式。

已有的容器如何做成镜像(commit)

还有一种可以通过 podman commit 来将已有的容器做成一个新镜像

podman commit <container> <image>:<tag>

执行完后可在 podman images 可以看到

容器 / 镜像的导入导出(export / import 和 save / load )

那么还有呢?也就是已经导出到本地的镜像,再导入回去,这里又分两种情况。

1)一种情况是只导入 rootfs 但没有任何环境变量、挂载信息、命令启动信息的导入。

也就是通过 podman export <container> -o ./test.tar 命令导出的容器,或自己手动制作的 tar 包,再通过 podman import 的方式去导入

podman import test.tar myimage:base

此时就会多一个新镜像,这里 myimage:base 也是镜像名和标签名的意思。

2)而另一种情况呢,是通过 save / load 去导入导出,这种方式是比较推荐的做法。因为保留了容器/镜像相关的信息(如环境变量、挂载点、命令启动等信息)。

save 保存到本地

podman save -o myimage.tar myimage:base

load 从本地导入

podman load -i myapp_base.tar

这里可以看到 save 的是一个镜像,那么如果想迁移容器,那很简单,配合前面说的 podman commit 来做就好。

只是想获取某个镜像的 rootfs?


有时候想用 podman 将已经下载好的镜像导出文件。我们可以用下面一种方法。

在输入 podman images 时我们可以得知已经下载好的镜像信息,包括镜像id和名称 这里我以导出 fedora 镜像为参考例子,首先基于镜像创建一个临时容器比如叫 tmp (按自己的想法来) 这里我直接指定了镜像名称 fedora:latest,而这里也可以是镜像id

podman create --name tmp fedora:latest

创建容器后,将这个临时的容器在当前目录导出一个叫 rootfs.tar 的压缩包

podman export tmp -o rootfs.tar

此时可以删除临时容器了

podman rm tmp

接下来把 rootfs.tar 进行解压,解压路径自己定。至于为什么需要用到 sudo 是因为像这种 rootfs 可能默认只有 root 用户,如果不提权解压出来的文件可能影响后续使用,只是为了让文件所有者为 root 用户

sudo tar -xf rootfs.tar -C  <解压路径>