容器管理工具--podman

一、 容器基础概述

  1. Linux中的容器是装应用的
  2. 容器就是将软件打包成标准化单元,用于开发、交付和部署
  3. 容器技术已经成为应用程序封装和交付的核心技术
    • 优点
    – 相比于传统的虚拟化技术,容器更加简洁高效
    – 传统虚拟机需要给每个VM安装操作系统
    – 容器使用的共享公共库和程序
    1.png

    2.png

    • 镜像是启动容器的核心,镜像由镜像仓库提供
    • 在podman中容器是基于镜像启动的
    • podman和容器的关系
    – podman是完整的一套容器管理系统
    – podman提供了一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术

• podman所需环境
关闭所有虚拟机的SELinux
[root@rhel8 ~]# vim /etc/selinux/config
SELINUX=disabled
设置虚拟机的防火墙
[root@rhel8 ~]# yum -y remove firewalld
安装容器软件:
[root@localhost ~]# yum -y module install container-tools

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

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

•查找镜像(需要能访问互联网)

–podman search 关键字
podman search httpd

•下载镜像(需要能访问互联网)

–podman pull 镜像名称:标签
podman pull localhost/myos:latest

•导入镜像

–podman load -i 备份文件.tar.gz
podman load -i /root/httpd.tar.gz

二、使用容器

镜像管理命令

•启动容器
–podman run –选项 镜像名称:镜像标签 启动命令
•查看容器
–podman ps [ -a 所有容器id ] [ -q 只显示容器 id ]
•删除容器
–podman rm 容器id
•容器管理命令启动、停止、重启
–podman start|stop|restart 容器id
•进入容器
–podman exec -it 容器id 启动命令

•podman run 命令的选项

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

三、对外发布容器服务

•容器可以与宿主机的端口进行绑定
•从而把宿主机变成对应的服务,不用关心容器的IP地址
•我们使用 -p 参数把容器端口和宿主机端口绑定
•同一宿主机端口只能绑定一个容器服务
•-p [可选IP]:宿主机端口:容器端口
•例如:把宿主机变成 nginx
podman run -d -p 80:80 myos:nginx
容器放入后台,端口绑定练习
]# podman run --name nsdweb -p 80:80 -d localhost/myos:httpd
[root@rhel8 ~]# podman ps -a

四、容器进阶-容器共享卷

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

五、管理系统服务

•systemd一个更高效的系统&服务管理器
–开机服务并行启动,各系统服务间的精确依赖
–服务目录:/usr/lib/systemd/system/
–主要管理工具:systemctl

手动方式:
podman start nsdweb #启动容器
podman stop nsdweb #停止容器
systemd方式:
systemctl start nsdweb #启动容器
systemctl stop nsdweb #停止容器

systemd管理方式思路:
用户--systemctl--》systemd--服务配置文件--》容器启动
•管理员服务文件默认路径
–/usr/lib/systemd/system/
•生成服务启动配置文件
--files:生成文件类型
podman generate systemd --name 容器名 --files
•重新加载服务启动配置文件
systemctl daemon-reload

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容