今天分享一下最近两年比较火的容器容器技术:Podman。 说到容器,界新每个运维人员都知道docker,宠P才容更有些人简单地认为容器就是的对比docker,docker就是详细容器。其实Docker只是容器容器技术中的一种,只是界新它社区活跃,称霸了容器界十来年。宠P才容 虽然Docker仍然是的对比主流,但还是详细存在一些问题: 依赖常驻守护进程(dockerd),占用资源高,容器容易出故障需要 root 权限,界新安全风险较高与 systemd、宠P才容Kubernetes 的WordPress模板的对比接轨不够原生社区运作复杂,Docker 公司商业化步伐加快,详细限制更多正因如此,社区逐渐转向 Podman 等更轻量、更安全的替代方案。Docker的霸主地位已经逐渐被挑战。  1. Podman 是什么?Podman(Pod Manager) 是由 Red Hat 主导开发的容器运行工具,设计初衷就是:做一个不需要 daemon、支持 rootless、更接近 Kubernetes 的 Docker 替代者。 (1) 特性对比 特性 Docker Podman 是否需要后台守护进程 是(dockerd) 无守护进程 是否原生支持无 root 运行 需配置 默认支持 CLI 命令兼容性 兼容兼容 支持 Pod 模型 支持 支持 K8s YAML 生成能力 依赖额外工具 原生 安全性 相对较弱 更强(进程级隔离、SELinux 支持) (2) 安装podman 在大多数 Linux 系统上可以直接安装: 复制# Ubuntu / Debian sudo apt-get -y install podman # CentOS / RHEL / Fedora sudo dnf -y install podman1.2.3.4.5. 检查版本: 复制podman version1.  2. 与Docker命令对比Podman 的高防服务器 CLI 命令设计与 Docker 几乎一样,你甚至可以把 docker 替换为 podman 直接执行大多数命令。我这里列出常用的命令对比: 功能 Docker 命令 Podman 命令 查看版本 docker version podman version 拉取镜像 docker pull nginx podman pull nginx 查看镜像 docker images podman images 运行容器 docker run -it nginx podman run -it nginx 列出容器 docker ps podman ps 查看所有容器 docker ps -a podman ps -a 停止容器 docker stop ID/NAME podman stop ID/NAME 启动容器 docker start ID/NAME podman start ID/NAME 删除容器 docker rm ID/NAME podman rm ID/NAME 删除镜像 docker rmi IMAGE podman rmi IMAGE 构建镜像 docker build -t myapp . podman build -t myapp . 容器内执行命令 docker exec -it ID bash podman exec -it ID bash 查看日志 docker logs ID/NAME podman logs ID/NAME 3. Podman 的高级特性:Podman 不止是“照抄” Docker,它还有自己的高级玩法,也就是Docker无法做到的事情。 (1) Pod管理 你可以像 Kubernetes 一样用 Pod 运行多个容器: 复制# 创建 Pod podman pod create --name webpod -p 8080:80 # 在 Pod 中运行 nginx podman run -dt --pod=webpod nginx1.2.3.4.5. 查看所有 Pod: 复制podman pod ps1. (2) 自动生成 K8s YAML 文件 复制podman generate kube webpod > webpod.yaml1. 一键生成 YAML 文件,用于部署到 Kubernetes,非常适合开发→测试→上线流程。 (3) rootless 运行容器 在普通用户下直接运行: 复制podman run -it busybox1. 不需要 sudo,安全性暴增! 如果你之前已经熟悉Docker,学习Podman简直不要太简单了,主要区分一些关键点就行,就目前来看,Podman还真有可能是未来的趋势。站群服务器 |