如何快速建立一个podman环境

news2024/12/24 8:36:11
本文介绍如何安装podman,并创建podman容器

环境

Centos8

安装podman

Podman 是一个容器环境,首先在主机上安装 Podman。执行下面命令来安装podman:

[root@localhost ~]# yum -y install podman

然后修改一下用户命名空间的大小:

[root@localhost ~]# echo "user.max_user_namespaces=28633" >> /etc/sysctl.d/userns.conf
[root@localhost ~]# sysctl -p /etc/sysctl.d/userns.conf
user.max_user_namespaces = 28633

下面创建一个podman容器来看一下吧,下面使用的是RHEL的UBI镜像:

[root@localhost ~]# podman run ubi8/ubi cat /etc/os-release
Resolved "ubi8/ubi" as an alias (/etc/containers/registries.conf.d/001-rhel-shortnames.conf)
Trying to pull registry.access.redhat.com/ubi8/ubi:latest...
Getting image source signatures
Checking if image destination supports signatures
Copying blob ce3c6836540f done  
Copying blob 63f9f4c31162 done  
Copying config cc06568478 done  
Writing manifest to image destination
Storing signatures
NAME="Red Hat Enterprise Linux"
VERSION="8.5 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.5"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.5 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.5
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.5"

创建Dockerfile

现在可以创建一个 Dockerfile 来指定如何构建新的镜像。首先需要为 Dockerfile 文件创建一个目录:

[root@localhost ~]# mkdir ~/myc
[root@localhost ~]# cd ~/myc

创建一个文件Dockerfile文件,来建立一个新镜像:

[root@localhost myc]# vim Dockerfile

FROM ubi8/ubi:latest
RUN dnf install -y nano


开始使用podman build来创建容器:

[root@localhost myc]# podman build -f Dockerfile -t ubi-with-nano
[root@localhost myc]# podman build -f Dockerfile -t ubi-with-nano
STEP 1/2: FROM ubi8/ubi:latest
STEP 2/2: RUN dnf install -y nano
Updating Subscription Management repositories.
Unable to read consumer identity
...


使用podman images来确认是否创建新镜像:

[root@localhost myc]# podman images

BestCentOS - 精选每一篇高品质的技术干货


现在你可以运行容器了,检查nano编辑器是否可用:

[root@localhost myc]# podman run localhost/ubi-with-nano /usr/bin/which nano
/usr/bin/nano

通过查看nano执行文件的位置,来检查是否安装。

Nano 现在已安装在你的自定义容器中。还可以交互式的运行容器:

[root@localhost myc]# podman run -it localhost/ubi-with-nano /bin/bash
[root@d1f0e46f2b6d /]# ls
bin   dev  home  lib64      media  opt   root sbin  sys  usr
boot  etc  lib  lost+found  mnt    proc  run srv   tmp  var
[root@d1f0e46f2b6d /]# 


在容器中运行exit来退出容器。

可以使用podman ps来查看运行的容器,如果需要查看以停止的容器,可以添加-a选项:

[root@localhost myc]# podman ps 
[root@localhost myc]# podman ps -a

存储

经常让新用户感到困惑的一件事是它们的短暂性。例如进入容器里创建的文件,退出之后,再次进入发现文件没有了。下面我们将容器中需要存储永久性文件的文件夹挂载到系统的某个文件夹中。下面在本机创建一个存储位置:

[root@localhost ~]# mkdir /pod_data

然后使用您的存储目录作为一些相关的挂载点来启动容器。此示例将本地目录/pod_data绑定到容器中名为/storage 的位置,必须在目录位置附加 :Z,以便 SELinux 可以在主机和 Podman 之间转换上下文。

[root@localhost ~]# podman run -it --volume /pod_data:/storage:Z localhost/ubi-with-nano
[root@d590bc344b76 /]# echo "hello podman" >> /storage/msg.txt
[root@d590bc344b76 /]# exit
exit
[root@localhost ~]# cat /pod_data/msg.txt 
hello podman


可以看到目录绑定之后,在容器中写入数据,退出容器,在本机的/pod_data可以看到写入的内容。

总结

本文介绍如何安装podman,并创建podman容器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

202305读书笔记|《因思念而沉着》——任何赞美都是身外之物唯自由可随身携带

《因思念而沉着》作者巴哑哑,忘了是什么时候加入的书架,昨天下班地铁上读完的书。是美的! 部分节选如下: 羽叶茑萝举着熄灭的花青色的小枣落了一地所以哭泣沾染上了你的脸 在没落下 当我们开始生活 就是开始患上了眼疾你独自悲伤…

互联网求职指南2023版(内含腾讯、阿里、字节真实面经)

0. 缘起 五年前,小编曾经写过一篇文章,文章主要带大家了解当时的互联网巨头公司、独角兽公司。并给出了互联网的求职建议。从简历、知识储备、暑期实习、面试上给出了中肯的建议。现在看来也是很受用的,感兴趣的可以点击链接《互联网求职指南…

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例 文章目录 【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例一. 整体思路1.1 两条原则1.2 四个步骤 二. 举例——用InceptionNet解决MNIST任务2.1 模型简介2.2 MNIST任务2.3 完整的程序…

【ChatGPT 】ChatGPT Sidebar 实战:自定义 ChatGPT 搜索页面回复模板(示例开发和文员专用模板)

目录 一、前言 二、ChatGPT Sidebar 通用配置 (1)通用配置入口 (2)设置 ① 如何访问 ChatGPT ② 语言 ③ 主题 三、ChatGPT Sidebar 搜索页面 (1)搜索页面入口 (2)设置 …

Node 05-Node.js模块化

Node.js 模块化 介绍 什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用…

【问题解决】Git报错:failed to push some refs to xxxxx

Git报错:failed to push some refs to xxxxx To https://xxxxxxxxxxxx.git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘https://xxxxxxxx.git’ hint: Updates were rejected because the remote contains work that yo…

AI+明厨亮灶智能算法 yolo

AI明厨亮灶智能算法通过pythonyolo网络模型分析算法,AI明厨亮灶模型算法可接对后厨实现如口罩识别、厨师服穿戴、夜间老鼠监测、厨师帽识别、厨师玩手机打电话识别、抽烟识别等实时分析监测。Python是一种由Guido van Rossum开发的通用编程语言,它很快就…

领导力专题︱聊聊领导力的主要问题

本文内容结构 一、领导力的主要问题:领导者与下属 1、让人敬佩的领导者的能力与技巧 2、下属的期望 (1)热情 (2)重视 (3)欣赏 (4)归属感 3、下属(追随…

微结构MRI参数估计的神经网络:在白质扩散-弛豫模型中的应用

导读 通过使用生物物理模型来解释弛豫-扩散MRI大脑数据,可以研究白质微观结构的具体特征。尽管更复杂的模型有可能揭示组织的更多细节,但也会导致参数估计耗时较长,由于简并拟合地形中普遍存在局部最小值,这些参数估计可能会收敛…

软件测试工程师需要达到什么水平才能顺利拿到 20k 无压力?

最近有粉丝朋友问:软件测试员需要达到什么水平才能顺利拿到 20k 无压力? 这里写一篇文章来详细说说: 目录 扎实的软件测试基础知识:具备自动化测试经验和技能:熟练掌握编程语言:具备性能测试、安全测试、全…

前端Vue.js项目开发,不重启项目,快速切换后台地址---使用nginx负载简单快速实现更换后台代理地址

前端Vue.js项目开发,不重启项目,快速切换后台地址—使用nginx负载简单快速实现更换后台代理地址 本文实现了在vue项目不重启的情况下,快速实现更换联调后台服务器的方法, 能够大大节省vue项目重启时间 chen 2023-04-20 文档源码地址,最新版本会在这里修改…

互交式3d地球仪工具:Earth 3D - World Atlas Mac

Earth 3D - World Atlas for Mac是一款3d地球仪。这个交互式 3D 地球仪以世界奇观、政治和物理地图以及天气为特色。发现许多关于我们星球的有趣事实和有用信息!原始的彩色图形、用户友好的界面和准确的信息——这就是 Earth 3D - World Atlas 的全部意义所在&#…

leetcode Two Sum-Java 和Python 的写法

我想这题是正要开始写LeetCode 的人,大部分的人的第一题吧,这题是个基本题算在easy 的题型,看到题目直接就会想到使用双回圈的写法,不过双回圈时间复杂度只有达到 O(N^2) 不那么理想,如果比较资深的工程师会用HashMap …

wsl的图像化实现,在wsl中启动浏览器

最近在学习wsl,原本我看以前的教程说wsl和vmware的区别有一点就是,wsl只能使用命令行,而vmware可以实现图像化,结果我在 microsoft 官方发现现在的wsl 2已经实现了 GUI 界面,所以就来记录一下吧。 wsl 的 GUI 实现 首…

Vue3.2 + TypeScript + Pinia + Vite4 + Element-Plus + 微前端(qiankun) 后台管理系统模板(已开源)

最终效果 一、前言 Wocwin-Admin,是基于 Vue3.2、TypeScript、Vite、Pinia、Element-Plus、Qiankun(微前端) 开源的一套后台管理模板;同时集成了微前端 qiankun也可以当做一个子应用。项目中组件页面使用了Element-plus 二次封装 t-ui-plus 组件&#xf…

C/C++每日一练(20230420)

目录 1. 存在重复元素 II 🌟 2. 外观数列 🌟🌟 3. 最优路线 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专…

搭建sentry来监控Django项目

sentry搭建 我的环境: centos7,已安装docker和docker compose 下载最新zip包到 /usr/local/ https://github.com/getsentry/self-hosted/tagshttps://github.com/getsentry/self-hosted/tags解压 unzip self-hosted-23.4.0.zip 安装期间会提示是否…

Ceph入门到精通-Cephadm安装Ceph(v17.2.5 Quincy)全网最全版本

Deploy Ceph(v17.2.5 Quincy) cluster to use Cephadm - DevOps - dbaselife Install cephadm Cephadm creates a new Ceph cluster by “bootstrapping” on a single host, expanding the cluster to encompass any additional hosts, and then depl…

【洛谷 P1003】[NOIP2011 提高组] 铺地毯 题解(数组+贪心算法)

[NOIP2011 提高组] 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n n n 张地毯,编号从 1 1 1 到 n n n。现在将这些地毯按照编号从小…

阿里云mysql8小版本升级造成磁盘不断增长,undolog持续增长不释放

现象: 1.用户升级之后,实例上磁盘空间以每分钟1g的速度不断增长, 2.高频dml表的空间不断变大但表数据其实不大,binlog大量产生 3.通过select * from innodb_tablespaces where name like %undo%发现undo 空间上涨较快&#xff0…