podman容器

简介

什么是Podman?

官网描述: Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器(开源的容器管理工具)。容器可以作为根运行,也可以以无根模式运行。简单地说:alias docker=podman简单的说它是下一代容器。

官网 : Podman Github 项目: GitHub - containers/podman: Podman: A tool for managing OCI containers and pods.

  • 以前使用 Docker CLI 的时候它会通过 gRPC API 去跟 Docker Engine 说「我要启动一个容器」,然后 Docker Engine 才会通过 OCI Container runtime(默认是 runc)来启动一个容器;意味着容器的进程不可能是 Docker CLI 的子进程而是 Docker Engine 的子进程。
  • Podman 比较简单粗暴它不使用 Daemon,而是直接通过 OCI runtime(默认也是 runc)来启动容器所以容器的进程是 podman 的子进程(相当于是省去了中间商,减少了赚差价 ),比较像 Linux 的 fork/exec

特点:

Podman有何特点:

  • 1.没有 Daemon (守护进程) 直接通过 OCI runtime(默认也是runc)来启动容器,所以容器的进程是 podman 的子进程;
  • 2.采用类似于Linux中"fork/exec模型"相比较于”C/S模型”有一定的优势。
  • 3.能够以非 root 用户的身份去运行容器
  • 4.引入注册表的概念其内部包括docker.io在内的多个容器镜像源,默认的有redhat docker fedora centos quay

podman和docker对比

Podman VS Docker

  • (1) 模型对比
    • Podman: fork/exec 模型
    • Docker: C/S 模型
  • (2) 启动模式:
    • 前者直接OCI containner runtime(runc)进行交互来创建container的
    • 后者通过API跟 Docker Engine(引擎)请求才会调用OCI container runtime(runc)来启动一个container
  • (3) 守护进程
    • 前者容器不支持–restart策略但是可以通过编写systemd服务来完成自启动
    • 后者因有docker daemon,所以docker启动的容器支持–restart策略
  • (4) 权限对比
    • 前者可以非root用户创建容器
    • 后者必须使用root用户来创建容器

常用命令:

安装podman

[root@localhost ~]# yum install -y podman

拉去镜像

podman pull 镜像名

[root@localhost ~]# podman pull nginx
Trying to pull registry.access.redhat.com/nginx...
  unsupported: This repo requires terms acceptance and is only available on registry.redhat.io
Trying to pull registry.redhat.io/nginx...
  unable to retrieve auth token: invalid username/password: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication
Trying to pull docker.io/library/nginx...
Getting image source signatures
Copying blob 77700c52c969 done  
Copying blob 881ff011f1c9 done  
Copying blob e5ae68f74026 done  
Copying blob 21e0df283cd6 done  
Copying blob ed835de16acd done  
Copying blob 44be98c0fab6 done  
Copying config f652ca386e done  
Writing manifest to image destination
Storing signatures
f652ca386ed135a4cbe356333e08ef0816f81b2ac8d0619af01e2b256837ed3e

查看镜像

podman images

[root@localhost ~]# podman images
REPOSITORY                TAG      IMAGE ID       CREATED       SIZE
docker.io/library/nginx   latest   f652ca386ed1   12 days ago   146 MB

创建容器

podman create

[root@localhost ~]# podman create nginx
fef816f6ad1ec42f56eae8a167bf7432f7aa8273f3aeaa47c32956ef0452eea0

启动容器

podman start

[root@localhost ~]# podman start fef816f6ad1ec42f56eae8a167bf7432f7aa8273f3aeaa47c32956ef0452eea0
fef816f6ad1ec42f56eae8a167bf7432f7aa8273f3aeaa47c32956ef0452eea0

查看容器

podman container ls

[root@localhost ~]# podman ps -a
CONTAINER ID  IMAGE                           COMMAND               CREATED             STATUS             PORTS  NAMES
fef816f6ad1e  docker.io/library/nginx:latest  nginx -g daemon o...  About a minute ago  Up 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值