系统&服务管理进阶
Linux容器基础(rhce备考了解)
容器介绍
容器是什么?
—— 现实中的容器是用来装东西的
- Linux里面的容器是用来干什么的?
- Linux中的容器是装应用的
- 容器就是将软件打包程标准化单元,用于开发、交付和部署
- 容器技术已经成为应用程序封装和交付的核心技术
容器的优缺点
优点:
—— 相比于传统的虚拟化技术,容器更加简洁高效
—— 传统虚拟机需要给每个VM安装操作系统
—— 容器使用的共享公共库和程序
•镜像是启动容器的核心,镜像由镜像仓库提供
•在podman中容器是基于镜像启动的
缺点:
—— 容器的隔离性没有虚拟化强
—— 共用Linux 内核,安全性有先天缺陷
podman是什么?
—— podman是完整的一套容器管理系统
—— podman提供类一组命令,让用户更加方便直接地使用容器技术,而不需要过多关心底层内核技术
podman安装
安装条件
- 需要64位操作系统
- 至少RHEL8以上的版本
- 关闭firewalld防火墙与关闭SELinux(不是必须)
[root@rq ~]# vim /etc/selinux/config
SELINUX=disabled
设置虚拟机的防火墙
[root@rq ~]# yum -y remove firewalld
podman安装
- podman 所需软件
- 系统软件,位于光盘镜像源中
- 利用系统光盘,构建Yum仓库
#准备好镜像文件
[student@server1 ~]$ scp -r /linux-soft/s1/img.tar.xz root@192.168.88.4:/root
#模块化安装:类似于安装一组软件包
[root@rq ~]# yum -y module install container-tools
[root@rq ~]# podman --help #查看podman帮助信息
# 关机拍摄快照:容器安装完成
Linux容器管理
镜像仓库
什么是镜像
镜像管理
-
镜像的名称和标签
方式一:每一个镜像都对应唯一的镜像 id
方式二:镜像名称(姓氏) + 标签(名字) = 唯一
——每一个镜像都有标签,如果没写就是默认标签 latest
——我们在调用镜像的时候,如果没有指定标签也是 latest
容器使用镜像启动 -
查找镜像(需要能访问互联网)
podman search 关键字
podman search httpd -
下载镜像(需要能访问互联网,可以从官方镜像仓库(docker.io、quay.io)下载,也可以自己制作)
podman pull 镜像名称:标签
podman pull localhost/myos:latest -
导入镜像
podman load -i 备份文件.tar.gz
podman load -i /root/httpd.tar.gz
#镜像管理练习
]# podman images #查看当前有哪些镜像
]# podman load -i /root/img.tar.xz #导入镜像
]# podman images #查看当前有哪些镜像
#镜像删除练习01
]# podman images #查看当前有哪些镜像
]# podman rmi 60 #按照镜像的ID值,删除镜像
]# podman images #查看当前有哪些镜像
]# podman load -i /root/img.tar.xz #导入镜像
]# podman images #查看当前有哪些镜像
#镜像删除练习02
]# podman images #查看当前系统可以使用的镜像
]# podman rmi localhost/rockylinux:8.6 #删除镜像
]# podman images
]# podman load -i /root/img.tar.xz #导入镜像
]# podman images
容器管理
-
podman run 命令
–podman run -选项 镜像名称:镜像标签 启动命令•查看 run 的选项 –podman help run –man podman-run •run = 创建 + 启动 + 进入 三合一的操作
-
podman run 命令的选项
–选项 -i,交互式方式 –选项 -t,终端 –选项 -d,后台运行 –选项 --name 容器名字
启动容器,并进入容器
podman run -it myos:latest /bin/bash •可以通过命令行提示符,判定自己是否进入容器了
容器管理命令
•启动容器
–podman run –选项 镜像名称:镜像标签 启动命令
•查看容器
–podman ps [ -a 所有容器id ] [ -q 只显示容器 id ]
•删除容器
–podman rm 容器id
•容器管理命令启动、停止、重启
–podman start|stop|restart 容器id
•进入容器
–podman exec -it 容器id 启动命令
#容器初步练习
]# podman run --name abc01 -it localhost/rockylinux:8.6 /bin/bash
[root@2b0b7c62ab42 /]# cat /etc/redhat-release
[root@2b0b7c62ab42 /]# useradd dc
[root@2b0b7c62ab42 /]# id dc
[root@2b0b7c62ab42 /]# exit #退出容器
[root@rq ~]# podman ps -a #查看当前系统容器
[root@rq ~]# podman start abc01 #启动容器
[root@rq ~]# podman exec -it abc01 /bin/bash #进入容器
[root@2b0b7c62ab42 /]# id dc
[root@2b0b7c62ab42 /]# exit #退出容器
[root@rq ~]# podman rm -f abc01 #强制删除容器abc01
#容器放入后台练习
]# podman rm -f abc01 #强制删除容器abc01
]# podman run --name abc01 -itd localhost/rockylinux:8.6
]# podman ps -a #查看当前系统有哪些容器
]# podman exec -it abc01 /bin/bash #进入abc01容器
[root@962aa837e17b /]# useradd tc
[root@962aa837e17b /]# id tc
[root@962aa837e17b /]# exit
]# podman ps -a #查看当前系统有哪些容器
]# podman exec -it abc01 /bin/bash #进入abc01容器
[root@962aa837e17b /]# id tc
[root@962aa837e17b /]# exit
]# podman ps -a #查看当前系统有哪些容器
]# podman rm -f abc01 #强制删除容器abc01
podman命令行
podman镜像管理
镜像管理命令
podman 容器管理
容器管理命令
管理容器进阶
对外发布容器服务
怎么访问podman服务
发布podman服务
•容器可以与宿主机的端口进行绑定
•从而把宿主机变成对应的服务,不用关心容器的IP地址
•我们使用 -p 参数把容器端口和宿主机端口绑定
•同一宿主机端口只能绑定一个容器服务
•-p [可选IP]:宿主机端口:容器端口
•例如:把宿主机变成 apache
podman run -itd -p 80:80 myos:httpd
•例如:把宿主机变成 nginx
podman run -itd -p 80:80 myos:nginx
容器放入后台,端口绑定练习
]# podman run --name nsdweb -p 80:80 -itd localhost/httpd:latest
[root@rq ~]# podman ps -a
[root@rq ~]# podman exec -it nsdweb /bin/bash
[root@5b69bf6956b0 html]# echo wo shi nsdweb > /var/www/html/index.html
[root@5b69bf6956b0 html]# exit
exit
[root@rq ~]# curl 192.168.88.4
wo shi nsdweb
[root@rq ~]#
容器共享卷
卷的用途
主机卷的映射
容器终极练习
]# podman rm -f nsdweb #强制删除容器
]# mkdir /webroot
]# echo wo shi niuniu > /webroot/index.html
]# podman run --name nsdweb -p 80:80 -v /webroot:/var/www/html -itd localhost/httpd:latest
[root@rq ~]# curl 192.168.88.4
wo shi niuniu
管理系统服务(了解)
systemd
• 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
容器之光练习(必须是相对路径,当前路径必须是/usr/lib/systemd/system,容器必须正在运行)
]# cd /usr/lib/systemd/system
]# podman ps -a
]# podman generate systemd --name nsdweb --files
]# vim container-nsdweb.service #大致浏览一遍
]# systemctl daemon-reload #重新加载服务配置文件
]# systemctl daemon-reload
]# podman stop nsdweb #手动停止
]# podman ps -a
]# systemctl start container-nsdweb #测试systemd方式
]# podman ps -a
]# systemctl enable container-nsdweb #设置开机自启