Podman安装及操作

Podman安装

目录

Podman安装

安装


Podman 是一个无守护、开源的 Linux 本地工具,旨在使用 open Containers Initiative (OCI) 让容器和镜像更加方便地查找、运行、构建、共享和部署应用程序。Podman 提供了一个命令行接口(CLI),任何使用过 Docker 容器引擎的人都能很快上手 podman。大多数用户可以简单地将 Podman 别名为 Docker (alias Docker = Podman),没有任何问题。与其他常见的容器引擎 (Docker、CRI-O、containerd) 类似,Podman 依赖于符合 OCI 的容器运行时(runc、cron、runv等) 来与操作系统交互并创建运行的容器。这使得由 Podman 创建的正在运行的容器与由任何其他通用容器引擎创建的容器几乎没有区别。

Podman 比较简单粗暴,它不使用 Daemon,而是直接通过 OCI runtime(默认也是 runc)来启动容器,所以容器的进程是 podman 的子进程。这比较像 Linux 的 fork/exec 模型,而 Docker 采用的是 C/S(客户端/服务器)模型。与 C/S 模型相比,fork/exec 模型有很多优势,比如:

  • 如果利用 cgroup 对 podman 做一些限制,那么所有创建的容器都会被限制。

  • 如果将 podman 命令放入 systemd 单元文件中,容器进程可以通过 podman 返回通知,表明服务已准备好接收任务。

  • 可以将连接的 socket 从 systemd 传递到 podman,并传递到容器进程以便使用它们。

安装

 [root@podman ~]# yum -y install podman
 [root@podman ~]# ps -aux |grep podman
 root       35152  0.0  0.0   9212  1160 pts/0    S+   22:42   0:00 grep --color=auto podman
 [root@podman ~]# podman -v
 podman version 4.0.2
 [root@podman ~]# podman images
 REPOSITORY  TAG         IMAGE ID    CREATED     SIZE
 root@podman ~]# podman --help
 Manage pods, containers and images
 ​
 Usage:
   podman [options] [command]
 ​
 Available Commands:
   attach      Attach to a running container
   auto-update Auto update containers according to their auto-update policy
   build       Build an image using instructions from Containerfiles
   commit      Create new image based on the changed container
   container   Manage containers
   cp          Copy files/folders between a container and the local filesystem
   create      Create but do not start a container
   diff        Display the changes to the object's file -------------------------
 ​
 ​

可以发现,使用方式可以说和 docker 的丝毫不差,不用担心从 docker 切换到 podman 会有不习惯的。如果不习惯使用 podman 命令,可以使用 alias docker=podman 来对docker命令做一个映射。

加速链接获取 详细请阅读docker 基本用法

默认镜像库 文件 /etc/containers/registries.conf 是设置镜像地址配置文件,默认会搜索 ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io', 'quay.io']等几个镜像库。

     不过,这几个镜像库下载速度非常慢,可以说是基本无法顺利的将镜像拉下来。
 ​
     所以,需要修改修改镜像库配置文件,也就是大家说的镜像加速方案。

镜像加速

     只需2个步骤实现镜像加速:
 ​
           1.改名并备份好文件:/etc/containers/registries.conf.bak
 ​
           2.再新建一个空的 registries.conf 文件,插入如下内容
                 unqualified-search-registries = ["docker.io"]
 ​
                 [[registry]]
                 prefix = "docker.io"
                 location = "******.mirror.aliyuncs.com"
 ​
           3.修改 location
                网易:https://hub-mirror.c.163.com/
 ​
                阿里云:https://<你的ID>.mirror.aliyuncs.com
           4.保存

配置:

 # 修改podman镜像源
 [root@podman ~]# vim /etc/containers/registries.conf
 unqualified-search-registries = ["docker.io"]
  #podman默认的镜像拉取镜像地址第一个是红毛的,改成docker的
   [[registry]]
 prefix = "docker.io"
 location = "fi54miqv.mirror.aliyuncs.com"
 #试一下
 [root@podman ~]# podman login
 Username: **********
 Password: 
 Login Succeeded!

操作

 [root@podman ~]# podman pull httpd
 #和docker相似,拉去镜像httpd
 -------------
 [root@podman ~]# podman run -d --name httpd docker.io/library/httpd:latest
 2684bce8b0b52a51fe9fbb6081b057e51a3b455da68fedae2a69868607728eab
 [root@podman ~]# podman ps
 CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS       NAMES
 2684bce8b0b5  docker.io/library/httpd:latest  httpd-foreground  5 seconds ago  Up 5 seconds ago              httpd
 [root@podman ~]# podman exec -it httpd /bin/bash
 root@2684bce8b0b5:/usr/local/apache2# 
 podman export将容器的文件系统内容导出为 tar 存档
 history显示指定图像的
 images列出本地存储中的图像
 导入tarball 以创建文件系统映像
 info显示 podman 系统信息
 init初始化一个或多个容器
 kill用特定的信号杀死一个或多个正在运行的容器
 kube play等
 logs获取容器的日志、
 machine管理 podman 的虚拟机
 manifest创建和操作清单列表和图像索引
 mount挂载一个工作容器的根文件系统
 pause暂停一个或多个容器中的所有进程
 pod管理 pod
 port列出端口映射或容器的特定映射
 ps列出容器
 push将图片推送到指定目的地
 rename重命名现有容器

你可能感兴趣的:(开源软件使用,docker,容器,kubernetes)