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

Podman和Docker

Podman和Docker

概念

Podman和Docker都是管理镜像、容器的工具,可以帮我们在虚拟机中快速部署好一个项目

使用Docker,我通常会先在VMware中创建一个Centos虚拟机,然后在该虚拟机中安装好docker,再给docker配置国内镜像源后续直接拉取镜像,运行成容器即可

使用Podman,我的理解中,可以直接下载Podman Desktop,然后会指引我们安装VM环境、WSL2、Podman Machine等

WLS2在这里其实就相当于Centos,Podman运行在WLS2中,Docker运行在Centos中(当然Centos中也可以安装Podman,WLS2中也可以安装docker,只是这样更方便顺手)

Podman Machine让我们可以通过Windows控制WLS2(包括Podman Desktop关联WLS2中的Podman,直接在Windows终端控制WSL2)

使用Podman Desktop,可以帮我们快速启动镜像成容器,而不需要关心docker run后面的一大段内容

Docker环境部署

在已有linux虚拟机基础上:

安装docker

# 1.1 卸载旧版本(可选)
sudo yum remove -y docker \docker-client docker-client-latest \docker-common docker-latest \docker-latest-logrotate docker-logrotate docker-engine# 1.2 安装依赖 & 官方 yum 源
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 1.3 安装并启动
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker# 1.4 验证
docker version          # 能看到 Server 信息即安装成功

配置镜像源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirrors.c.163.com","https://mirror.baidubce.com"]
}
EOFsudo systemctl daemon-reload
sudo systemctl restart docker

拉取镜像

docker pull rabbitmq:3.12-management   # 标签可换成最新版本
docker images | grep rabbitmq          # 确认已拉取

运行成容器

docker run -d --name rabbitmq \-p 5672:5672 -p 15672:15672 \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=123456 \--restart=always \rabbitmq:3.12-management# 查看状态
docker ps | grep rabbitmq

浏览器访问 http://<主机IP>:15672,用户名/密码即为上面设置的 admin / 123456

Podman环境部署

确保安装好了Podman Desktop,并且已经装好了Podman Machine、WSL2、Podman

在安装Podman Desktop时,按照引导逐步安装就好了

可以打开Podman Desktop来查看:

image-20251114155138034

能看到Podman Machine正在运行即可

然后就已经可以尝试拉取镜像了,但因为我们的初始注册表(镜像源)都是国外的:

image-20251114155301736

因此很大概率无法拉取到镜像,此时就需要配置国内镜像源

配置国内镜像源两种方法:

  1. 图形化界面配置

    注意!!!我个人在使用图形化界面配置时,一直没用,包括在图形化界面中直接添加阿里云的国内镜像源,也都无法使用

    具体原因貌似是权限的问题,总而言之下面的图形化界面的配置,请直接跳过到在WSL终端来配置

    直接点击Add register,然后配置阿里云镜像源路径

    但这要求一定要填写账号密码

    需要到:https://cr.console.aliyun.com/

    image-20251114155540392

    然后拿阿里云账户全名 + 密码就可以在Podman Desktop中配置好了

    image-20251114155816960

    阿里云镜像源地址:https://registry.cn-hangzhou.aliyuncs.com

    然后就配置好了:

    image-20251114155850677

  2. 第二种方法就是在WSL终端来配置

    怎么打开WSL终端:

    先win + x打开windows终端再打开WLS终端(或者win + r输入wsl)

    image-20251114160154752

    需要注意:

    WSL有系统级镜像源配置文件:/etc/containers/registries.conf

    还有用户级镜像源配置文件:~/.config/containers/registries.conf

    且优先使用用户级,最好是两个都配置国内镜像源:

    [registries.search]
    registries = ['swr.cn-north-4.myhuaweicloud.com', 'registry.aliyuncs.com', 'hub-mirror.c.163.com', 'docker.mirrors.ustc.edu.cn', 'docker.io']
    

    但是很不可思议的是,当我这样配置后,我是可以直接找到我想要的镜像的

    例如使用命令:podman pull rabbitmq:management

    image-20251115131952516

    但是!!!如果你选择第一个,尝试拉取华为云的这个镜像,包括乃至下面阿里云的镜像等都是不行的

    因为华为云实际存放镜像的位置是:swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq:3.12-management

    所以选了第一个以后,根本就找不到

    这时候你可能想,那我把配置文件改为:

    [registries.search]
    registries = ['swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io', 'registry.aliyuncs.com', 'hub-mirror.c.163.com', 'docker.mirrors.ustc.edu.cn', 'docker.io']
    

    这样就能找到了吧,然而如果这样写,podman会直接报错,根本无法处理这个配置文件。。。

    所以我很困惑,到底怎么办才能拉取到我想要的镜像呢?

    如果我直接执行podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq:3.12-management

    确实是能拉到的

    我们可以执行podman search swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq --list-tags

    image-20251115132458299

    直接就能看到有哪些版本

    但下次呢?如果我要其他镜像呢?例如nacos

    执行podman search swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos --list-tags

    image-20251115133010853

    又找不到了(因为没权限),这不炸钢了吗。。。

    那我就又要去找登入、注册、找密钥等等,和阿里云一样,很麻烦

    但是我直接一拉,运行podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.2.3

    image-20251115133601931

    又成功了。。。问Ai,他说是拉取要的权限比查询的要低?那我没辙了

    然后我又尝试拉取seata的镜像,先试试podman search,是不行的,那我就试试直接拉,也要登入(这次直接拉也要权限了)

    那我去问ai,得知和阿里云一样,登入后应该就好了,然后确定是使用华为云的账号密码

    但是我登入,账号密码错误,但是ai又说就是用这个账号密码

总而言之:

当我使用podman时,遇到的问题有很多,包括镜像路径填写格式、国内一定要权限、外网连接不上等等

下面列出我能直接拉取的镜像:

podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.2.3

podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq:3.12-management

podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.1.4

然后就这样吧

但是当我拉取到这三个镜像后,在podman Desktop点两下,也确实就启动好容器,可以直接localhost访问了

r.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq:3.12-management

podman pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.1.4

然后就这样吧

但是当我拉取到这三个镜像后,在podman Desktop点两下,也确实就启动好容器,可以直接localhost访问了

所以问题就是在podman拉取镜像这里,目前我没有解决。

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

相关文章:

  • 自己架设服务器做网站一同看网页打不开
  • 手写LRU 缓存
  • 23-MD5+DES+Webpack:考试宝
  • 前端构建工具环境变量,安全管理
  • 个人网站名称举例网站建设需要的硬件
  • 数据分析笔记09:Python条件语循环
  • 可在哪些网站做链接赣州网络招聘
  • 高端网站制作网站背景自动切换
  • 代码生成工具GitHub Copilot介绍
  • RDMA基本操作类型---send/recv,write/read
  • 2.37基于Multisim的数字电子钟准点报时,时间可调,Multisim时钟,Multisim电子时钟。含3000字报告。功能:带准点报时,时间可调
  • 建筑模板有哪些seo优化按天扣费
  • 广州网站设计联系方式旅游做攻略用什么网站好
  • 小华HC32L136K8TA 单片机新建 MDK5 工程模板 (一)
  • day15(11.15)——leetcode面试经典150
  • LED闪烁功能代码详解
  • 这几年做哪些网站致富基于ssh框架的网站开发流程
  • 远程(本地)连接不上虚拟机
  • Ubunntu24.04 下载jdk 8
  • SpringCache详细教学使用
  • 39Nginx的rewrite规则执行逻辑详解
  • C++—priority_queue/仿函数:优先级队列的使用及模拟实现
  • 做网站哪些dw使用模板做网站教程
  • 深圳市光明建设发展集团网站网站建设面谈话术
  • Java EE进阶5:Spring IoCDI
  • 中专生学历提升与职业发展指南
  • 易语言怎么反编译 | 如何通过反编译理解易语言的工作原理与破解技巧
  • 阿里国际站韩语网站怎么做百度帐号个人中心
  • EnsembleRetriever中的倒数融合排序算法
  • 网站客户端制作多少钱wordpress导出html