众妙之门

业精于勤,荒于嬉;行成于思,毁于随

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    Podman是一个功能齐全的容器引擎,它是一个简单的无需守护的用来管理镜像、容器的工具。Podman提供了一个与Docker CLI兼容的操作方式,简单地说:alias docker=podman。大多数Podman命令都可以普通用户运行,而无需其他额外的权限。

仓库=》镜像=》容器的关系:
仓库:用来提供/存放镜像,有官方仓库(比如红帽的registry.redhat.io、刀客的docker.io),或自建私有仓库。
镜像:针对某个虚拟机或某个应用封装的独立环境,作为容器的模板。
容器:基于某个镜像启动的在内存中运行的实例。

获取镜像
•镜像的名称标识
–每一个镜像都对应唯一的镜像 id
–镜像名称(姓氏) + 标签(名字) = 唯一

–每一个镜像都有标签,如果没写就是默认标签** latest**
–我们在调用镜像的时候,如果没有指定标签也是 latest

基本使用

搜索镜像:podman search 关键字

podman search nginx

下载镜像:podman pull 镜像名称:标签

podman pull docker.io/library/nginx

 查看镜像:podman  images

 启动容器:podman run –选项 镜像名称:镜像标签 启动命令

容器可以与宿主机的端口进行绑定,从而把宿主机变成对应的服务,不用关心容器的IP地址,•我们使用 -p 参数把容器端口和宿主机端口绑定
•同一宿主机端口只能绑定一个容器服务
•-p [可选IP]:宿主机端口:容器端口

podman run -p 8080:80 -d docker.io/library/nginx:1.16.1-alpine

 访问nginx服务:curl http://localhost:8080

 查看容器:podman ps [ -a 所有容器包含为运行的容器 ] [ -q 只显示容器 id ]

删除容器:podman rm 容器id
容器管理命令启动、停止、重启、强制停止:podman start|stop|restart|kill 容器id
进入容器:podman exec -it 容器id 启动命令:podman exec -it a166347b6410 /bin/sh

–选项 -i,交互式
–选项 -t,终端
–选项 -d,后台运行
–选项 --name 容器名字

进入容器后可以通过:hostname -I,查看容器的IP地址

# hostname -I
10.88.0.2 

然后容器建也可以相互访问

查看镜像的元数据:podman inspect 容器ID,包含创建时间,镜像名称,创建命令等

 从容器内拷贝文件到目的主机上:podman cp 容器ID:容器内路径 目的的主机路径

 其它

在进入容器后没有vi工具,可以安装:apt-get install vim

podman容器不适合保存任何数据
•podman可以映射宿主机文件或目录到容器中
–目标对象不存在就自动创建
–目标对象存在就直接覆盖掉
–多个容器可以映射同一个目标对象来达到数据共享的目的
•启动容器时,使用 -v 映射参数
podman run -d -v 宿主机对象:容器内对象 镜像名称:标签
podman run --name nsdweb -p 80:80 -v /webroot:/var/www/html -d localhost/myos:httpd

参考:

https://www.modb.pro/db/421356

https://huangzhongde.cn/post/Linux/Podman_Basic_Usage/

https://zhuanlan.zhihu.com/p/359517644

https://blog.51cto.com/liruilong/5931170

 https://www.cnblogs.com/cnwangk/p/17196478.html

 

posted on 2023-05-18 15:22  xuanm  阅读(2349)  评论(0编辑  收藏  举报