容器的基础
容器的优势
–相比于传统的虚拟化技术,容器更加简洁高效
–传统虚拟机需要给每个VM安装操作系统
–容器使用的共享公共库和程序
•镜像是启动容器的核心,镜像由镜像仓库提供
•在podman中容器是基于镜像启动的
镜像管理
• 镜像的名称标识
方式一:每一个镜像都对应唯一的镜像 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 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 启动命令
制作镜像
容器进阶-对外发布容器服务
•容器可以与宿主机的端口进行绑定
•从而把宿主机变成对应的服务,不用关心容器的IP地址
•我们使用 -p 参数把容器端口和宿主机端口绑定
•同一宿主机端口只能绑定一个容器服务
•-p [可选IP]:宿主机端口:容器端口
•例如:把宿主机变成 apache
podman run -itd -p 80:80 myos:httpd
•例如:把宿主机变成 nginx
podman run -itd -p 80:80 myos:nginx
容器进阶-管理系统服务(了解)
• 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,容器必须正在运行)