本心、输入输出、结果
文章目录
- 开源的容器运行时项目 Podman
- 前言
- Podman 简介
- Podman 与 Docker 的区别
- Podman 在使用上和 Docker 有什么区别
- 从构建者角度分析 Podman 在使用上和 Docker 有什么区别
- 从使用者角度分析 Podman 在使用上和 Docker 有什么区别
- Podman 常用命令
- 容器
- 镜像
- 安装 Podman
- 使用 Podman
- 弘扬爱国精神
开源的容器运行时项目 Podman
编辑:简简单单 Online zuozuo
地址:https://blog.csdn.net/qq_15071263
前言
开源的容器运行时项目 Podman
Podman 简介
Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。
Podman 提供与 Docker 非常相似的功能。正如前面提到的那样,它不需要在你的系统上运行任何守护进程,并且它也可以在没有 root
权限的情况下运行。
Podman 可以管理和运行任何符合 OCI(Open Container Initiative)规范的容器和容器镜像
Podman 提供了一个与 Docker 兼容的命令行前端来管理 Docker 镜像
Podman 官网地址
Podman 与 Docker 的区别
- CRI 实现上,Docker 需要 root 权限、需要守护进程,Podman 不需要
- RunC 上,Docker 需要通过多个 daemon 才可以调用 OCI 的 RunC,Podman 直接调用 RunC
- 守护进程上,Docker 守护进程, Podman 的守护进程是 /usr/libexec/podman/conmon,父进程是 1 号进程
Podman 在使用上和 Docker 有什么区别
Podman 定位上与 Docker 兼容,使用上也比较接近 Docker
从构建者角度分析 Podman 在使用上和 Docker 有什么区别
- Podman 的默认软件与 Docker 区别不大
- Podman 比 Docker 简单
- 调试方面需要适应
从使用者角度分析 Podman 在使用上和 Docker 有什么区别
- Podman 命令使用上与 Docker 基本兼容
- Podman 、Docker 都包含容器运行时、本地镜像、镜像仓库
- Podman 命令行与 Docker 类似
- Podman 可以使用 docker.io 作为镜像仓库
Podman 常用命令
容器
podman run #创建并启动容器
podman start #启动容器
podman ps #查看容器
podman stop #终止容器
podman restart #重启容器
podman attach #进入容器
podman exec #进入容器
podman export #导出容器
podman import #导入容器快照
podman rm #删除容器
podman logs #查看日志
镜像
podman search #检索镜像
docke pull #获取镜像
podman images #列出镜像
podman image Is #列出镜像
podman rmi #删除镜像
podman image rm #删除镜像
podman save #导出镜像
podman load #导入镜像
podmanfile #定制镜像(三个)
podman build #构建镜像
podman run #运行镜像
podmanfile #常用指令(四个)
COPY #复制文件
ADD #高级复制
CMD #容器启动命令
ENV #环境变量
EXPOSE #暴露端口
安装 Podman
// 安装podman
[root@localhost ~]# yum -y install podman
// 仓库配置
[root@localhost ~]# vim /etc/containers/registries.conf
[registries.search]
registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io'] //这个是查找,从这三个地方查找,如果只留一个,则只在一个源里查找
unqualified-search-registries = ["registry.fedoraproject.org", "registry.access.redhat.com", "registry.centos.org", "docker.io"] //这里也要改为一个
[registries.insecure]
registries = [10.0.0.1] //这里写那些http的仓库,比如harbor
// 配置加速器
[registries.search]
registries = ['https://l9h8fu9j.mirror.aliyuncs.com','docker.io']
使用 Podman
Podman 的指令跟 Docker 大多数都是相同的
运行一个容器
[root@localhost ~]# podman run -d --name httpd docker.io/library/httpd
Trying to pull docker.io/library/httpd...
Getting image source signatures
Copying blob e5ae68f74026 done
Copying blob d3576f2b6317 done
Copying blob bc36ee1127ec done
Copying blob f1aa5f54b226 done
Copying blob aa379c0cedc2 done
Copying config ea28e1b82f done
Writing manifest to image destination
Storing signatures
0492e405b9ecb05e6e6be1fec0ac1a8b6ba3ff949df259b45146037b5f355035
// 查看镜像
[root@localhost ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/httpd latest ea28e1b82f31 11 days ago 148 MB
展示运行的容器
[root@localhost ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0492e405b9ec docker.io/library/httpd:latest httpd-foreground About a minute ago Up About a minute ago httpd