1、容器vs虚拟机
容器共用宿主机内核,不用装独立系统,占用资源极少;容器软件环境和宿主机隔离,不会出现依赖冲突。
2、镜像 & 容器
镜像是静态模板,容器是镜像跑起来的进程;容器默认数据临时,删容器数据就清空。
podman pull 镜像名(拉取镜像)
podman run 镜像名(基于镜像运行容器)
3、Podman、ContainerFile
Podman用法≈Docker,红帽默认工具;ContainerFile用来自定义制作镜像。
podman build -t 自定义镜像名 .
4、无根容器
普通用户直接运行容器,安全性更高,部分功能有权限限制,实验默认就是该模式。
5、容器常用配置
- 端口映射:外部访问容器服务
podman run -p 宿主机端口:容器端口 镜像
- 环境变量:配置容器内程序参数
podman run -e 变量=值 镜像
- 数据挂载:宿主机目录挂载容器,实现数据永久保存
podman run -v 宿主机路径:容器内路径 镜像
6、容器隔离
容器之间互相隔离,互不影响。
基础指令: podman ps 查看容器、 podman rm 删容器、 podman rmi 删镜像
7、开机自启
用systemd管理容器服务,实现开机自动运行容器
systemctl --user start 服务名
systemctl --user enable 服务名
8、进入容器内部
podman exec -it 容器名 bash
9、把容器写成系统服务
podman generate systemd --new --name 容器名 > ~/.config/systemd/user/容器名.service
(写成系统服务之后需用systemctl命令控制)
高频操作命令:
podman images # 查看本地所有镜像
podman run [参数] 镜像名 # 新建并启动容器
podman stop 容器名 # 停止容器
podman start 容器名 # 启动已存在的容器
podman exec -it 容器名 bash # 进入容器内部终端