当前位置: 首页 > news >正文

Podman讲解

Podman讲解

理解

Podman相当于docker

Podman Desktop用于操作装在虚拟机中的Podman

如果没有WSL2虚拟机,Podman Desktop会自动帮我们创建好并在该虚拟机上安装好podman

任务

现在需要安装podman并在虚拟机上跑一个项目(SQLBot)

先理一下传统命令行方式怎么部署这个SQLBot:

  1. VMware中配置好linux虚拟机
  2. 通过MobaXterm远程连接虚拟机(方便文件操作)
  3. 虚拟机中安装好docker
  4. 将SQLBot压缩包传入虚拟机(这里放在/home/)(传入前最好先修改一下DockerFile,避免构建镜像时一直要调用国外的镜像,极慢)
  5. 解压缩
  6. 构建SQLBot的镜像
  7. 运行容器
  8. 通过访问虚拟机ip:8000使用SQLBot
  9. 配置网络模式(NAT模式改为桥接模式)
# 常用命令合集:# 进入 Dockerfile 所在目录(假设 Dockerfile 在当前文件夹)
cd /path/to/dockerfile目录# 构建镜像,命名为 sqlbot-image,版本标签可加 :v1(可选)
docker build -t sqlbot-image .# 用新镜像创建容器(复用你之前的挂载命令,加 --network host 可访问内网数据库)
docker run -d --name sqlbot-container \-v /home/sqlbot/data/excel:/opt/sqlbot/data/excel \-v /home/sqlbot/data/file:/opt/sqlbot/data/file \-v /home/sqlbot/data/images:/opt/sqlbot/data/images \-v /home/sqlbot/data/logs:/opt/sqlbot/app/logs \-v /home/sqlbot/data/postgresql:/var/lib/postgresql/data \--privileged \--network host \sqlbot-imagedocker stop sqlbot-containerdocker start sqlbot-container# 查看运行中的容器(重点看 STATUS 是否为 Up,PORTS 端口)
docker ps# 查看所有容器(包括已停止的,确认容器是否存在)
docker ps -a# 进入容器终端(大部分 Linux 容器用 /bin/bash,若报错换 /bin/sh)
docker exec -it sqlbot-container /bin/bash
# 退出容器:直接输入 exit 即可,不影响容器运行# 实时查看日志(按 Ctrl+C 停止)
docker logs -f sqlbot-container# 查看最近 100 行日志(避免日志过多刷屏)
docker logs --tail 100 sqlbot-container# 先停止容器(若在运行)
docker stop sqlbot-container# 再删除容器
docker rm sqlbot-containerdocker images# 先删容器(否则镜像删不掉)
docker rm -f sqlbot-container# 再删镜像
docker rmi sqlbot-image

image-20251113100537759

image-20251113100549664

docker run -d --name sqlbot-container \-p 8000:8000 -p 8001:8001 \-v /home/sqlbot/data/excel:/opt/sqlbot/data/excel \-v /home/sqlbot/data/file:/opt/sqlbot/data/file \-v /home/sqlbot/data/images:/opt/sqlbot/data/images \-v /home/sqlbot/data/logs:/opt/sqlbot/app/logs \-v /home/sqlbot/data/postgresql:/var/lib/postgresql/data \--privileged \--network host \sqlbot-image

image-20251113100603411

通过上面可以实现本机访问虚拟机中部署的SQLBot

接下来实现让多台电脑通过内网访问我的虚拟机

这就需要配置VMware中的虚拟网络编辑器

image-20251113132248996

找到VMnet8,然后添加两个端口转发

意味着通过主机ip+主机端口访问虚拟机ip+虚拟机端口

主机端口是后续希望访问宿主机的端口,虚拟机ip和端口是固定的

使用

虚拟机ip:http://192.168.224.128:8000

宿主机ip:http://172.168.11.103:8000

用户名:admin
默认密码:SQLBot@123456

然后再看看怎么使用Podman Desktop或者Docker Desktop快速部署SQLBot

  1. 先在Windows下安装好Podman Desktop并下载好SQLBot的压缩包(后续传入虚拟机中)

    打开Podman Desktop后出现问题:

    image-20251113105251910

    # 需要先配置windows,ctrl + x打开管理员终端
    # 运行下面命令:
    # 开启Virtual Machine Platform
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    # 初始化WSL2内核:
    wsl --update                    # 自动下载最新 WSL2 内核
    wsl --shutdown                  # 重启 WSL 子系统
    

    image-20251113110202940

    有点慢

    image-20251113111257097

  2. 通过Podman Desktop快速生成WSL2虚拟机并在该虚拟机中安装好Podman

    初始化WSL2内核后,点击Continue

    Podman会自动:

    • 下载 Fedora CoreOS 映像

      image-20251113114538296

    • 创建并启动 podman-machine-default 虚拟机

    • 完成后即可在 Windows 里 podman pull / build / run(命令行方式)

      podman machine list
      cd C:\Users\shany\Desktop\SQLBot\SQLBot-main
      podman build -t local/sqlbot .
      
  3. 在Windows的Podman Desktop界面中,直接管理WSL2虚拟机内的Podman环境(图形化方式)

    image-20251113115713022

总结

后续使用,就只用获取镜像文件,然后打开podman desktop,构建镜像,然后podman desktop会自动去WSL2虚拟机中构建好镜像

如果已经有一个虚拟机了,也可以直接将Podman Desktop和Podman都安装到该虚拟机中,也是通过可视化界面直接操作

WSL2虚拟机和CentOS对比

前者是windows自带的轻量级虚拟机,后者是完整虚拟机

WSL2可以理解为:微软内置的一个“极简版”Linux 虚拟机,专门用来方便地在Windows上跑Linux环境和容器

如果使用的VMware中的centos,要内网访问就需要设置桥接,并用虚拟机自己的ip访问

或者通过配置(端口转发,上面有),然后直接访问宿主机ip

如果使用Potman中的WLS2,则直接访问宿主机ip就可以

问题

注意宿主机的防火墙和虚拟机的防火墙要关闭

通过端口转发,可以实现内网和虚拟机联通,但需要注意容器自身的网络默认是 “隔离” 的,需要手动配置容器网络模式为 host(或通过 --add-host 绑定内网 IP),让容器直接使用宿主机的网络栈,从而能访问内网数据库

本文其实主要还是讲解怎么在VMware + centos7 + docker来部署一个SQLBot

p就可以

问题

注意宿主机的防火墙和虚拟机的防火墙要关闭

通过端口转发,可以实现内网和虚拟机联通,但需要注意容器自身的网络默认是 “隔离” 的,需要手动配置容器网络模式为 host(或通过 --add-host 绑定内网 IP),让容器直接使用宿主机的网络栈,从而能访问内网数据库

本文其实主要还是讲解怎么在VMware + centos7 + docker来部署一个SQLBot

因为我自己对Podman也不咋熟练,不过肯定是能帮到各位了解podman的搭建和回顾docker的使用

http://www.dtcms.com/a/605252.html

相关文章:

  • PHP EOF (Heredoc)
  • Spring Boot集成Kafka:最佳实践与详细指南
  • 【运维】Docker 入门
  • 手机网站的尺寸做多大的如何搭建wordpress商城
  • 百度商桥绑定网站正规的关键词优化软件
  • F280049C学习笔记之CMPSS
  • linux系统学习(10.shell基础)
  • 融合之力:金仓数据库“五个一体化“如何重塑国产数据库生态
  • 山西省第十九届职业院校技能大赛 网络建设与运维赛项 1. 系统安装答案解析
  • 做网站哪个服务商便宜菏泽网站设计培训
  • SLAM中的非线性优-3D图优化之轴角在Opencv-PNP中的应用(二)
  • Step-Audio-EditX
  • Notepad++编译C语言 | 如何高效配置和使用Notepad++进行C语言开发
  • Hadoop学习_week1
  • 靠谱的时序数据库哪家技术强
  • VR水污染体验系统——VR 里的碧水守护
  • 重构企业运维智慧:低代码 ITSM 知识管理平台的创新与实践
  • 从C++开始的编程生活(13)——list和浅谈stack、queue
  • m序列原理及在5G的应用
  • 焦作建设网站的公司怎么让百度快速收录网站
  • API创建指定版本k8s集群
  • K8S NFS PVC PV 挂载点路径问题
  • 【CANN】开启AI开发新纪元,释放极致计算效率
  • ui展示 网站百度热门排行榜
  • Java并发编程基石:深入理解JMM(Java内存模型)与Happens-Before规则
  • 一个基于现代 C++23 Modules 的传统文化算法库,使用纯模块化设计实现(包含大六壬、六爻、紫薇斗数、八字、奇门遁甲)
  • 注释网站开发全国大型教育集团网站建设
  • PyQt5 + Qt Designer配置指令
  • setprop debug.hwui.profile visual_bars有什么作用
  • Vue3——Transition和TransitionGroup的区别以及最佳实践