了解如何在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 扩容方案,它通过建立一个双向支付通道网络,实现了快速、低成本的小额支付。闪电网络的交易速度非常快,可以达到每秒数万笔交易,而且交易费用非常低,几…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
