了解如何在linux使用podman管理容器
- 了解什么是容器,容器和镜像的关系
- 安装和配置podman
- 拉取和删除镜像
- 给镜像打标签
- 导出和导入镜像
- 创建和删除镜像
- 数据卷的使用
- 管理容器的命令
- 使用普通用户管理容器
[root@pp ~]# yum -y install podman
[root@pp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@pp ~]#
[root@pp ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@pp ~]#
[root@pp ~]# cat /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "frz7i079.mirror.aliyuncs.com"
[root@pp ~]# podman pull docker.io/nginx
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob 186b1aaa4aa6 done
Copying blob b4df32aa5a72 done
Copying blob a0bcbecc962e done
Copying blob 589b7251471a done
Copying blob a9edb18cadd1 done
Copying blob a2abf6c4d29d done
Copying config 605c77e624 done
Writing manifest to image destination
Storing signatures
605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
[root@pp ~]# podman pull mysql
Resolving "mysql" using unqualified-search registries (/etc/containers/registries.conf)
Trying to pull docker.io/library/mysql:latest...
Getting image source signatures
Copying blob 93619dbc5b36 done
Copying blob 37d5d7efb64e done
Copying blob 99da31dd6142 done
Copying blob ac563158d721 done
Copying blob 72a69066d2fe done
Copying blob 626033c43d70 done
Copying blob 688ba7d5c01a done
Copying blob d2ba16033dad done
Copying blob 4d7cfa90e6ea done
Copying blob 00e060b6d11d done
Copying blob 1c04857f594f done
Copying blob e0431212d27d done
Copying config 3218b38490 done
Writing manifest to image destination
Storing signatures
3218b38490cec8d31976a40b92e09d61377359eab878db49f025e5d464367f3b
[root@pp ~]#
[root@pp ~]# podman pull hub.c.163.com/library/centos
Trying to pull hub.c.163.com/library/centos:latest...
Getting image source signatures
Copying blob a3ed95caeb02 done
Copying blob a3ed95caeb02 done
Copying blob 2409c3878ba1 done
Writing manifest to image destination
Storing signatures
328edcd84f1bbf868bc88e4ae37afe421ef19be71890f59b4b2d8ba48414b84d
1 服务器IP: 端口 /分类 /镜像名 :tag [root@pp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest 605c77e624dd 23 months ago 146 MB
docker.io/library/mysql latest 3218b38490ce 24 months ago 521 MB
hub.c.163.com/library/centos latest 328edcd84f1b 6 years ago 200 MB
[root@pp ~]#
1 podman tag 旧的镜像名 新的镜像名 [root@pp ~]# podman tag docker.io/library/mysql 192.168.248.45/rhce/mysql:v2
[root@pp ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest 605c77e624dd 23 months ago 146 MB
docker.io/library/mysql latest 3218b38490ce 24 months ago 521 MB
192.168.248.45/rhce/mysql v2 3218b38490ce 24 months ago 521 MB
hub.c.163.com/library/centos latest 328edcd84f1b 6 years ago 200 MB
[root@pp ~]#
[root@pp ~]# podman rmi 192.168.248.45/rhce/mysql:v2
Untagged: 192.168.248.45/rhce/mysql:v2
[root@pp ~] 1 podman history镜像名 1 podman save 镜像名 > file.tar [root@pp ~]# podman save docker.io/library/nginx > nginx.tar
[root@pp ~]#
删除 Nginx这个镜像,命令如下
[root@pp ~]# podman rmi docker.io/library/nginx
Untagged: docker.io/library/nginx:latest
Deleted: 605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
[root@pp ~]#
[root@pp ~]# podman load -i nginx.tar
Getting image source signatures
Copying blob d874fd2bc83b done
Copying blob e379e8aedd4d done
Copying blob 2edcec3590a4 done
Copying blob f1db227348d0 done
Copying blob b8d6e692a25e done
Copying blob 32ce5f6a5106 done
Copying config 605c77e624 done
Writing manifest to image destination
Storing signatures
Loaded image(s): docker.io/library/nginx:latest
[root@pp ~]# podman run hub.c.163.com/library/centos
[root@pp ~]# podman ps
\CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@pp ~]# podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5aa772f744c3 hub.c.163.com/library/centos:latest /bin/bash 14 seconds ago Exited (0) 14 seconds ago sleepy_kare
[root@pp ~]#
1 podman rm 容器ID/容器名 1 podman rm ‐f 容器ID/容器名 [root@pp ~]# podman rm 5aa772f744c3
5aa772f744c31875f10e83d1f5ffab7f69e4064ac5102596d4a88d1bdbbe3895
[root@pp ~]#
[root@pp ~]# podman run -it hub.c.163.com/library/centos
[root@fe4465083ddb /]# exit
exit
[root@pp ~]#
[root@pp ~]# podman ps ‐q #‐q选项可以只显示容器ID,不会显示太多信息
[root@pp ~]# podman ps -a -q
fe4465083ddb
[root@pp ~]#
[root@pp ~]# podman run -it --name=c1 --rm hub.c.163.com/library/centos
[root@10386f6b4e99 /]# exit
exit
[root@pp ~]#
[root@pp ~]# podman run -it --name=c1 --rm hub.c.163.com/library/centos sh
sh-4.2# exit
exit
[root@pp ~]# [root@pp ~]# podman run -it --name=c1 --rm -e aa=123 -e bb=456 hub.c.163.com/library/centos
[root@8490fc4960c7 /]# echo $aa
123
[root@8490fc4960c7 /]# echo $bb
456
[root@8490fc4960c7 /]# exit
exit
[root@pp ~]#
[root@pp ~]# podman run -d --name=web --restart=always -p 80 docker.io/library/nginx
90813bcc5819e67e527d8abb715f083f2aa488a7aca853d288e29c985295c671
[root@pp ~]#
[root@pp ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90813bcc5819 docker.io/library/nginx:latest nginx -g daemon o... 37 seconds ago Up 37 seconds ago 0.0.0.0:46327->80/tcp web
[root@pp ~]#
[root@pp ~]# podman rm -f web
90813bcc5819e67e527d8abb715f083f2aa488a7aca853d288e29c985295c671
1 podman exec 容器名 命令 1 podman cp /path/file 容器:/path2 把物理机中的/path/f1e拷贝到容器的/path2中
2 podman cp 容器:/path2/file /path/ 把容器中的/path2/l1e拷贝到物理机的/path2中 1 podman logs 容器名 1 podman logs ‐f 容器名 1 ‐v /dirl 把物理机的一个随机目录映射到容器的/dir1目录中
2 ‐v /dir2:/dirl:Z 把物理机的指定目录/dir2映射到容器的/dir1目录中 [root@pp ~]# podman run -dit --name=c1 --restart=always -v /data/ hub.c.163.com/library/centos
47a66e083be7982719257a535f580b955c989c7531ee4d5ef19c138821959d84
[root@pp ~]#
[root@pp ~]# podman inspect c1 | grep -A5 Mounts"Mounts": [{"Type": "volume","Name": "cff4773d81248cef9997322c9de263f1ec680966735345305216b30642b690a7","Source": "/var/lib/containers/storage/volumes/cff4773d81248cef9997322c9de263f1ec680966735345305216b30642b690a7/_data","Destination": "/data",
[root@pp ~]#
[root@pp ~]# podman exec c1 ls /data/
[root@pp ~]# ls /var/lib/containers/storage/volumes/cff4773d81248cef9997322c9de263f1ec680966735345305216b30642b690a7/_data/
[root@pp ~]#
[root@pp ~]# podman cp /etc/hosts c1:/data/
[root@pp ~]# podman exec c1 ls /data/
hosts
[root@pp ~]# ls /var/lib/containers/storage/volumes/cff4773d81248cef9997322c9de263f1ec680966735345305216b30642b690a7/_data/
hosts
[root@pp ~]#
[root@pp ~]# mkdir /xx
[root@pp ~]# podman run -dit --name=c1 --restart=always -v /xx:/data/:z hub.c.163.com/library/centos7ecb9da861817aded61a29cf6aa2ab9a9d11005a213bf204335ac38416cc2ceb
[root@pp ~]#
[root@pp ~]# ls -dZ /xx
system_u:object_r:container_file_t:s0 /xx
[root@pp ~]#
[root@pp ~]# podman inspect c1 | grep -A5 Mounts"Mounts": [{"Type": "bind","Source": "/xx","Destination": "/data","Driver": "",
[root@pp ~]#
[root@pp ~]# podman exec c1 ls /data/
[root@pp ~]# ls /xx/
[root@pp ~]# podman cp /etc/hosts c1:/data/
[root@pp ~]# podman exec c1 ls /data/
hosts
[root@pp ~]# ls /xx/
hosts
[root@pp ~]#
[root@pp ~]# podman rm -f c1
7ecb9da861817aded61a29cf6aa2ab9a9d11005a213bf204335ac38416cc2ceb
[root@pp ~]#
[iu@pp ~]$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
[iu@pp ~]$
[iu@pp ~]$ podman pull docker.io/library/nginx
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob 186b1aaa4aa6 done
Copying blob a0bcbecc962e done
Copying blob 589b7251471a done
Copying blob b4df32aa5a72 done
Copying blob a2abf6c4d29d done
Copying blob a9edb18cadd1 done
Copying config 605c77e624 done
Writing manifest to image destination
Storing signatures
605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85
[root@pp ~]# mkdir /yy
[root@pp ~]# chown iu.iu /yy/
[root@pp ~]#
[iu@pp ~]$ podman run -dit --name=web --restart=always -v /yy:/data/:Z docker.io/library/nginx
78aab24e798696415f31617adb43edfb6a06214bafb0c4cccbfefe90c1eb06ff
[iu@pp ~]$
[iu@pp ~]$ loginctl enable-linger iu
[iu@pp ~]$
[iu@pp ~]$ mkdir -p ~/.config/systemd/user ; cd ~/.config/systemd/user
[iu@pp user]$ ls
[iu@pp user]$
[iu@pp user]$ podman generate systemd --name web --files --new
/home/iu/.config/systemd/user/container-web.service
[iu@pp user]$
1 podman generate systemd ‐n web ‐f [iu@pp user]$ systemctl --user daemon-reload
[iu@pp user]$
[iu@pp user]$ systemctl --user enable container-web.service
Created symlink /home/iu/.config/systemd/user/multi-user.target.wants/container-web.service → /home/iu/.config/systemd/user/container-web.service.
Unit /home/iu/.config/systemd/user/container-web.service is added as a dependency to a non-existent unit multi-user.target.
Created symlink /home/iu/.config/systemd/user/default.target.wants/container-web.service → /home/iu/.config/systemd/user/container-web.service.
[iu@pp user]$ ls
container-web.service default.target.wants multi-user.target.wants
[iu@pp user]$
[iu@pp ~]$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78aab24e7986 docker.io/library/nginx:latest nginx -g daemon o... 15 minutes ago Up 15 minutes ago web
[iu@pp ~]$
相关文章:
了解如何在linux使用podman管理容器
本章主要介绍使用 podman 管理容器。 了解什么是容器,容器和镜像的关系 安装和配置podman 拉取和删除镜像 给镜像打标签 导出和导入镜像 创建和删除镜像 数据卷的使用 管理容器的命令 使用普通用户管理容器 使用普通用户管理容器 对于初学者来说,不太容…...
SQL命令---修改字段的数据类型
介绍 使用sql语句修改字段的数据类型。 命令 alter table 表明 modify 字段名 数据类型;例子 有一张a表,表里有一个id字段,长度为11。使用命令将长度修改为12 下面使用命令进行修改: alter table a modify id int(12) NOT NULL;下面使修…...
一键提取微信聊天记录,生成HTML、Word文档永久保存,还能生成微信年度聊天报告
不知道生活中你有没有遇到过这种情况,聊天记录不完整,有的在手机上,有的在电脑上,搜索起来很烦。那有没有一种办法可以把微信聊天记录统一呢?当然是有的。下面,就让我们一起来看一下怎么操作。 先看效果 操…...
docker使用详解
介绍 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。 Docker基于轻量级虚拟化技术,整个项目基于Go语言开…...
MidJourney笔记(7)-Seeds
我相信很多人在使用MidJourney的时候,都会遇到一个问题,就是如何保持生成图像的一致性,或者相对一致性,差异性不是很大。此时,我们就需要引入一个seed值,类似给这个提示词生成的图片做一个id标识。 那这个seed值怎么使用? 其实,在我们每次生成的图片,都有有一个seed值…...
pom配置文件重要标签探究
文章目录 dependencies标签dependencyManagement标签两者辨析repositories标签properties标签 dependencies标签 <dependencies>标签用于指定项目的依赖项列表。这些依赖项可以是应用程序代码所需的库,也可以是Spring Boot和其他第三方库。<dependencies&…...
如何在Ubuntu的Linux系统上搭建nacos集群
官方给出的集群部署架构图 集群部署说明 (nacos.io)3个或3个以上nacos节点才能构成集群当前示例中包含3个nacos节点,同时一个负载均衡器代理3个nacos,本示例中负载均衡器可使用的是nginx 准备并安装好正常运行的nginx,本示例略准备并安装好正…...
oracle中的PIVOT函数
在Oracle数据库中,PIVOT 是一个强大的功能,可以将行数据转换为列数据。这在报表和数据分析中非常有用。 基本的 PIVOT 语法如下: SELECT * FROM (SELECT <column1>, <column2>, ..., <pivot_column>, <aggregate_func…...
【经验分享】gemini-pro和gemini-pro-vision使用体验
Gemini Gemini已经对开发者开放了Gemini Pro的使用权限,目前对大家都是免费的,每分钟限制60条,至少这比起CloseAI的每个账户5刀限速1min3条要香的多,目前已于第一时间进行了体验 一句话总结,google很大方,但…...
JS冒泡排序
想必大家都多多少少了解过一点排序,让我为大家介绍一下冒泡排序吧! 假设我们现在有一个数组[2,4,3,5,1] 我们来分析一下: 1.一共需要的趟数 我们用外层for循环 5个数据我们一共需要走4躺 长度就…...
面向遥感图像的道路区域提取及优化
一、论文2017 (1)DeepRoadMapper (2)Topology Loss2018 (1)RoadTracer (2)iterative-deep-learning2019 (1)Leveraging Crowdsourced GPS Data for Road Extraction from Aerial Imagery (2)RoadNet (3)RoadTagger (4)Generative Graph Transformer (5)road_…...
mysql中NULL值
mysql中NULL值表示“没有值”,它跟空字符串""是不同的 例如,执行下面两个插入记录的语句: insert into test_table (description) values (null); insert into test_table (description) values ();执行以后,查看表的…...
[c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行
最近还遇到一个例子是关于:从C转C开发需要注意的一个意识问题。本人遇到的这个问题是,带着C的意识来看C的代码,然后根据代码看,有一个全局变量的值在main函数进入之后才会更改,所以百思不得其解,这个变量怎…...
VSCode 配置自动生成头文件
相关文章 VSCode 开发C/C实用插件分享——codegeex VSCode 开发C/C实用插件分享——koroFileHeader VSCode 配置自动生成头文件 一、snippets二、配置步骤三、效果展示 一、snippets 相信大家对C、C都头文件都不陌生,都会发现每个头文件都会包括下面的这些格式&…...
【大数据】Hudi 核心知识点详解(一)
😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 &#x…...
windows上抓包出现大包未分片以及关闭tso方法
wireshark抓包中会有大数据包(未分片包)和ip校验和不对的包,问题根因在目前很多电脑网卡支持TSO和将校验和计算到网卡上,导致抓出数据包未分片 详细文章看: https://www.cnblogs.com/charlieroro/p/11363336.html 目前很多网卡已…...
Leetcode 2454. 下一个更大元素 IV
Leetcode 2454. 下一个更大元素 IV题目 给你一个下标从 0 开始的非负整数数组 nums 。对于 nums 中每一个整数,你必须找到对应元素的 第二大 整数。如果 nums[j] 满足以下条件,那么我们称它为 nums[i] 的 第二大 整数: j >nums[j] > nu…...
浏览器全屏按键同f11效果
模拟键f11 // for IE,这里和fullScreen相同,模拟按下F11键退出全屏 let wscript new ActiveXObject(WScript.Shell) if (wscript ! null) {wscript.SendKeys({F11}) }同f11键效果生效全屏函数 //判断是否是全屏状态 var isFull Math.abs(window.scree…...
CentOS 7.9 安装 k8s(详细教程)
🍿安装步骤 🍚安装前准备事项🍚安装docker🍚删除docker🍚安装yum工具🍚设置docker镜像源🍚安装指定版本docker🍚设置开启自启🍚阿里云镜像加速 🍚准备环境&am…...
区块链的可拓展性研究【05】闪电网络
1.闪电网络:闪电网络是一种基于比特币区块链的 Layer2 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
