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