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模式改为桥接模式)
bash 复制代码
# 常用命令合集:

# 进入 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-image
  
  docker stop sqlbot-container
  
  docker 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-container

docker images

# 先删容器(否则镜像删不掉)
docker rm -f sqlbot-container

# 再删镜像
docker rmi sqlbot-image
bash 复制代码
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
bash 复制代码

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

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

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

找到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后出现问题:

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

    有点慢

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

    初始化WSL2内核后,点击Continue

    Podman会自动:

    • 下载 Fedora CoreOS 映像

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

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

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

总结

后续使用,就只用获取镜像文件,然后打开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的使用

相关推荐
❀͜͡傀儡师5 小时前
docker搭建Elasticsearch+Kafka+Logstash+Filebeat日志分析系统
elasticsearch·docker·kafka
Mr_Dwj5 小时前
【运维】Docker 入门
运维·docker·云原生·容器
小黑_深呼吸7 小时前
三、ingress全面详解: 实例配置及访问
docker·容器·kubernetes
心无旁骛~8 小时前
Docker常见命令
运维·docker·容器
羑悻的小杀马特8 小时前
openGauss 数据库快速上手评测:从 Docker 安装到SQL 实战
数据库·sql·docker·opengauss
刘一说10 小时前
Spring Boot 应用的云原生 Docker 化部署实践指南
spring boot·docker·云原生
❀͜͡傀儡师10 小时前
docker部署开源监控软件hertzbeat
docker·容器·开源·hertzbeat
demonre10 小时前
阿里云 Debian 13.1 安装 docker 并切换阿里云镜像源
后端·docker
noravinsc10 小时前
两台 centos 7.9 部署 pbs version 18.1.4 集群
linux·运维·centos