如何配置 Podman 使用国内镜像源?

Podman 配置国内镜像源

  • 什么是 Podman?
  • Docker 与 Podman 区别
  • 修改 Podman 容器注册表配置
    • 国内的镜像源
    • Podman Container Registries 修改步骤
    • 检查配置是否生效
  • Podman 容器存储
  • 总结

什么是 Podman?

Podman 是一种符合 OCI 标准的容器管理工具,它提供与 Docker 类似的功能来管理容器。

特别是在容器安全方面(相对于 Docker 容器工具),podmanrootless containers 特性在一定程度上避免了容器安全问题。

举个例子:

  • 假如 Linux 系统中有两个用户,分别是 user-auser-b,当 user-a 使用 podman 创建一个容器 container-a ,此时创建的容器 container-a 不能被 user-b 用户来修改,反之亦然。

Podman 的最佳特性之一是它能够运行 rootless containersrootless containers 是在没有 root 权限(普通用户)的情况下运行和管理容器的概念。从安全的角度来看,无根容器通过不允许根访问添加了额外的安全层,即使容器被攻击者破坏也是如此。

Podman 也是无守护进程的(与 docker 不同),这意味着它没有守护进程并直接与 runc 交互(运行基于 OCI 规范的容器)。

Podman 的另一个有趣且高级的功能是在 Pod 中运行容器。与 Kubernetes pod 类似,您可以使用 Podman 在本地创建多容器 Pod。您可以将 podman pod 导出为 Kubernetes 清单,并使用 Kubernetes pod 清单来部署和运行 podman pod

关于 Docker 和 Podman 之间的区别,相关文件推荐:

  • 为什么说 Podman 是 Docker 的一个替代方案?

Docker 与 Podman 区别

Podman 提供了类似 Docker 管理容器的功能,下面列举下它们两者的区别:

PodmanDocker
Podman 是无守护进程的Docker 有一个守护进程 (containerd)。docker CLI 与守护进程交互以管理容器。
Podman 直接通过 runcLinux 内核交互Docker 守护进程拥有所有运行容器的子进程
Podman 可以部署具有多个容器的 pod。可以在 Kubernetes 中使用相同的 pod 清单。此外,您可以将 K8s pod 清单部署为 Podman podDocker 中没有 pod 的概念
无需任何额外配置即可运行无根容器( rootless)。您可以使用 root 或非特权用户运行容器。Docker 无根模式( rootless)需要额外的配置。

修改 Podman 容器注册表配置

双击 Podman Desktop 图标,打开 GUI 工具,点击左下角的设置【Settings】选择【Registries】:

podman-desktop-settings-registries

如上图所示,默认情况下,podman 配置有 4 个容器注册表:

  • Docker Hubhttps://docker.io
  • Red Hat Quayhttps://quay.io
  • GitHubhttps://ghcr.io
  • Google Container Registryhttps://gcr.io

您可以在以下文件中找到默认的 Podman 容器注册表配置文件 registries.conf

  • 全局配置文件:/etc/containers/registries.conf
  • 用户配置文件:~/.config/containers/registries.conf

您可以向此配置添加自定义或私有容器注册表。例如,google 容器注册表、AWS ECR、自托管私有注册表等。

如果你想使用注册中心的其他私有容器镜像,你可以使用命令登录到注册中心 podman

例如,要登录到 docker hub

podman login docker.io

登录后,您将能够使用 podman 命令从 docker hub 中拉取容器镜像。

如果您希望为特定用户提供不同的注册表配置,您可以 registries.conf 在用户目录中创建单独的容器注册表信息。

$HOME/.config/containers/registries.conf

国内直接用 podman pull 拉取镜像会很慢(可能拉取失败),所以需要配置国内镜像源来加速访问。

国内的镜像源

国内的镜像源(镜像站)加速地址有:

  • 阿里云(需登录,免费),http://<你的ID>.mirror.aliyuncs.com
  • 网易,http://hub-mirror.c.163.com
  • 百度,https://mirror.baidubce.com
  • 上海交大,https://docker.mirrors.sjtug.sjtu.edu.cn
  • 南京大学,https://docker.nju.edu.cn

以下连接不公开或已失效:

  1. Docker 中国官方镜像(已关闭),https://registry.docker-cn.com
  2. 中国科技大学 USTC(仅供内部访问),https://docker.mirrors.ustc.edu.cn

Podman Container Registries 修改步骤

此处我们以全局配置文件方式修改容器注册表配置文件 registries.conf

  1. 配置文件在 podman machine 虚拟机中,连接该虚拟机并打开一个终端:
 podman machine ssh [optional-machine-name]
  1. 备份原文件
sudo cp /etc/containers/registries.conf /etc/containers/registries.conf.bak
  1. 查看文件
sudo cat /etc/containers/registries.conf

输出类似(单个镜像源)配置信息如下:

# 取消从默认地址搜索的仓库域名
unqualified-search-registries = ["docker.io"]# 自定义搜索器
[[registry]]
# 仓库前缀(镜像前缀)
prefix = "docker.io"
# 加速器地址,此处配置的 docker 中国区源
location = "registry.docker-cn.com"
# 允许通过 http 协议获取镜像
insecure = true

配置说明:

  • prefixpull 的时候指定的镜像前缀,如果不指定 prefix 则默认和 location 一致。
  • location 是获取镜像的地址;
  • insecure=true 表示允许通过 HTTP 协议来获取镜像,对于私有化部署/内网测试环境下无 https 证书的环境来说很有帮助。
  1. 编辑文件
sudo vim /etc/containers/registries.conf

配置多个镜像源:

unqualified-search-registries = ["docker.io"][[registry]]
prefix = "docker.io"
location = "hub-mirror.c.163.com"
insecure = true[[registry.mirror]]
# 百度镜像源
location = "mirror.baidubce.com"
insecure = true
[[registry.mirror]]
# 网易 163 镜像源
location = "hub-mirror.c.163.com"
insecure = true
[[registry.mirror]]
# 上海交大镜像源
location = "docker.mirrors.sjtug.sjtu.edu.cn"
insecure = true
[[registry.mirror]]
# 南京大学镜像源
location = "docker.nju.edu.cn"
insecure = true

退出并保存:

:wq!

使用 shell 脚本配置:

#!/bin/bash
[ -e /etc/containers/registries.conf.BackupDir ] || mkdir /etc/containers/registries.conf.BackupDir
sudo cp /etc/containers/registries.conf /etc/containers/registries.conf.BackupDir/registries.conf.`date "+%Y%m%d%H%M%S"`.bak
printf '
unqualified-search-registries = ["docker.io"][[registry]]
prefix = "docker.io"
location = "hub-mirror.c.163.com"
insecure = true[[registry.mirror]]
location = "mirror.baidubce.com"
insecure = true
[[registry.mirror]]
location = "hub-mirror.c.163.com"
insecure = true
[[registry.mirror]]
location = "docker.mirrors.sjtug.sjtu.edu.cn"
insecure = true
[[registry.mirror]]
location = "docker.nju.edu.cn"
insecure = true
' | sudo tee /etc/containers/registries.conf

检查配置是否生效

  1. 配置完成后,查看 podman 信息:
podman info
  1. 运行容器测试:
podman run --name=hello-world hello-world

Podman 容器存储

每个系统用户都有自己的容器存储。这意味着,如果您尝试从不同的用户登录中提取 image,它会从远程注册表(registries.conf)中提取 image 而不是本地 image

例如:

  • 对于 root 用户,容器存储在 /var/lib/containers/storage 目录中;
  • 对于其他用户,容器存储在 $HOME/.local/share/containers/storage/ 目录中;

总结

通过配置 Podman 的国内镜像加速站,我们又可以继续愉快的体验 Podman 管理容器的各项功能了。查看 podman 更多帮助信息,输入 podman -h

在这里思考一个问题,随着 Podman 的崛起,在容器方面,Docker 还被视为事实上的标准麽?欢迎各位小伙伴评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/443571.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推特账号被冻结怎么办?检查IP是否正常

Twitter 拥有庞大的用户群和日常内容流&#xff0c;是沟通、网络和营销的重要平台。然而&#xff0c;处理其限制和潜在的帐户问题可能很棘手。有许多跨境社媒小伙伴反馈&#xff0c;账号无故被冻结&#xff0c;导致内容与客户尽失&#xff01;其实除了账户养号、被举报、广告信…

《Pandas 简易速速上手小册》第2章:Pandas 数据导入与导出(2024 最新版)

文章目录 2.1 读取 CSV 和 Excel 文件2.1.1 基础知识2.1.2 重点案例&#xff1a;电商销售数据分析步骤1&#xff1a;数据准备步骤2&#xff1a;数据导入步骤3&#xff1a;销量分析 2.1.3 拓展案例一&#xff1a;金融市场数据分析步骤1&#xff1a;数据准备步骤2&#xff1a;数据…

Centos7——下载——安装

解释 CentOS 7是CentOS项目发布的开源类服务器操作系统&#xff0c;于2014年7月7日正式发布。CentOS 7是一个企业级的Linux发行版本&#xff0c;它源于RedHat免费公开的源代码进行再发行。CentOS 7内核更新至3.10.0、支持Linux容器、支持Open VMware Tools及3D图像即装即用、支…

基于Java SSM框架实现影片推荐系统项目【项目源码】

基于java的SSM框架实现影片推荐系统演示 JSP技术介绍 JSP技术本身是一种脚本语言&#xff0c;但它的功能是十分强大的&#xff0c;因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时&#xff0c;它可以使显示逻辑和内容分开&#xff0c;这就极大的方便了读者的需求。…

林浩然的“编程”与“诗译”奇妙之旅

林浩然的“编程”与“诗译”奇妙之旅 Lin Haoran’s Marvelous Journey in “Coding” and “Poetry Translation” 在数学与编程的世界里&#xff0c;主角林浩然宛如一位解谜大师&#xff0c;乐此不疲地探索着“一题多解”的奥秘。每当他面对一道复杂的数学难题或编程任务时&a…

SolidWorks基本应用

SolidWorks初始配置 新建零件&#xff0c;快捷键【Ctrl n】 保存零件&#xff0c;最好是新建一个【桌面小屏幕】文件夹&#xff0c;进行保存。 屏幕工程图&#xff1a; 建模&#xff1a; 单击功能栏的【草图栏】&#xff0c;然后点击【草图绘制】&#xff0c;草图绘制前…

使用草料二维码表单功能,让数据收集更高效、规范

功能介绍 表单作为草料二维码的高级功能之一&#xff0c;可用于收集格式统一的数据。你可以通过组合姓名、图片、检查项等组件搭建出电子表单&#xff0c;关联到二维码中&#xff0c;扫码填写表单即可更快速、规范的收集数据。 这些数据保存在账号下形成动态档案&#xff0c;…

使用ffmpeg madiamtx制作一个rtsp源

有很多人在跑rtsp解码的demo的时候, 苦于找不到一个可以拉流的源, 这里说一个简单的方法. 使用mediamtx, 加ffmpeg加mp4文件方式, 模拟一个rtsp的源. 基本架构就是这样. 在PC上, 这里说的PC可以是远程的服务器, 也可以是你的开发用的windows, 都行. 把mediamtx, 在pc上跑起来 …

芒果tv数据采集与可视化实现

摘 要 一个爬虫从网上爬取数据的大致过程可以概括为&#xff1a;向特定的网站服务器发出请求&#xff0c;服务器返回请求的网页数据&#xff0c;爬虫程序收到服务器返回的网页数据并加以解析提取&#xff0c;最后把提取出的数据进行处理和存储。因此&#xff0c;一个爬虫程序可…

Linux系统——Shell编程免交互及小命令详解

目录 一、免交互 1.Here Document 多行重定向 1.1定义 1.2语法格式 1.3tee命令 1.4cat与tee 1.5Here Document 变量设定 2.Expect 2.1定义 2.2格式 2.3命令详解 2.4示例 2.4.1交互式 2.4.2远程拷贝文件 2.4.3远程登录 交互式登录 免交互式登录 2.4.4免交互远程…

Origin 2022下载安装教程,操作简单,小白也能轻松搞定,附安装包,带软件使用教程

前言 Origin是一个科学绘图、数据分析软件&#xff0c;支持各种各样的2D/3D图形&#xff0c;包括统计&#xff0c;信号处理&#xff0c;曲线拟合以及峰值分析&#xff0c;Origin具有强大的数据导入功能和多样的图形输出格式。 准备工作 1、Win7及以上系统 2、提前准备好 Or…

函数高级.

函数高级 1. 函数嵌套1.1 函数在作用域中1.2 函数定义的位置1.3 嵌套引发的作用域问题练习题 2.闭包3.装饰器3.1 第一回合3.2 第二回合3.3 第三回合优化伪应用场景重要补充&#xff1a;functools 总结作业 各位小伙伴想要博客相关资料的话关注公众号&#xff1a;chuanyeTry即可…