This commit is contained in:
wenyongda 2025-11-26 16:08:17 +08:00
parent 88a4910def
commit ae1152be1e
2 changed files with 353 additions and 0 deletions

265
source/_posts/Podman.md Normal file
View File

@ -0,0 +1,265 @@
---
title: Podman
date: 2025-11-26 13:38:42
tags:
---
# Podman命令
Podman 是一个无守护进程Daemonless的容器引擎它在大致功能上与 Docker 兼容。这意味着**大多数 Docker 命令你可以直接把 `docker` 换成 `podman` 来使用**。
---
## 基础与别名 (Tips)
如果你习惯了 Docker可以直接在 Shell 中设置别名,这样你就不用改变肌肉记忆了:
```bash
alias docker=podman
```
## 容器生命周期管理 (Container Lifecycle)
这些命令用于创建、启动、停止和删除容器。
- 运行容器 (最常用)
```bash
# -d: 后台运行, -p: 端口映射, --name: 指定名称
podman run -d --name my-nginx -p 8080:80 nginx:latest
```
- 查看容器列表
```bash
podman ps # 仅查看正在运行的容器
podman ps -a # 查看所有容器(包括已停止的)
```
- 启动/停止/重启
```bash
podman start <容器ID或名称>
podman stop <容器ID或名称>
podman restart <容器ID或名称>
```
- 进入容器内部
```bash
#以交互模式进入容器的 bash/sh
podman exec -it <容器ID或名称> /bin/bash
```
- 删除容器
```bash
podman rm <容器ID或名称>
podman rm -f <容器ID或名称> # 强制删除正在运行的容器
```
- 查看日志
```bash
podman logs -f <容器ID或名称> # -f 实时跟踪日志输出
```
## 镜像管理 (Image Management)
- 拉取镜像
```bash
podman pull <镜像名>
# 例如: podman pull docker.io/library/alpine:latest
```
- 查看本地镜像
```bash
podman images
```
- 删除镜像
```bash
podman rmi <镜像ID或名称>
```
- 构建镜像
```bash
# 在当前目录根据 Dockerfile 构建
podman build -t my-app:v1 .
```
- 给镜像打标签 (Tag)
```bash
podman tag <源镜像ID> <新名称>:<标签>
```
## Pod 管理 (Podman 特色)
Podman 的一大特色是支持 **Pod**(类似于 Kubernetes 的 Pod 概念),即一个 Pod 里可以包含多个共享网络和存储的容器。
- 创建一个空 Pod
```bash
# 创建一个带有端口映射的 Pod
podman pod create --name my-pod -p 8080:80
```
- 在 Pod 中运行容器
```bash
# 将容器加入到上面创建的 pod 中
podman run -d --pod my-pod --name container-in-pod nginx
```
- 查看 Pod 列表
```bash
podman pod ps
```
- 停止/删除 Pod
```bash
podman pod stop <Pod名称>
podman pod rm <Pod名称>
```
## 高级功能与系统集成 (Advanced)
这是 Podman 最强大的地方,特别适合运维管理。
- **生成 Systemd 配置文件** (非常实用) Podman 可以直接生成 systemd unit 文件,让普通用户也能通过 `systemctl` 管理容器自启。
```bash
# 为正在运行的容器生成 service 文件
podman generate systemd --name <容器名称> --files --new
```
- **Kubernetes 互操作性**
- **导出 YAML:** 将现有容器导出为 K8s 的 YAML 定义。
```bash
podman generate kube <容器或Pod名称> > my-pod.yaml
```
- **运行 YAML:** 直接在 Podman 中运行 K8s 的 YAML 文件。
```bash
podman play kube my-pod.yaml
```
- 清理系统
```bash
# 删除所有停止的容器、未使用的网络和悬空的镜像
podman system prune
```
- 查看系统信息
```bash
podman info # 查看详细的存储、运行环境信息
podman version # 查看版本
```
# Podman换源
> Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 OCI 容器。与 Docker 类似Podman 也支持配置镜像源来加速容器镜像的拉取。
## Linux 系统配置
### 方法一:全局配置(推荐)
创建或编辑 Podman 的全局配置文件:
```shell
sudo mkdir -p /etc/containers
sudo tee /etc/containers/registries.conf <<-'EOF'
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
location = "docker.1ms.run"
[[registry.mirror]]
location = "docker.1panel.live"
[[registry.mirror]]
location = "docker.m.ixdev.cn"
[[registry.mirror]]
location = "hub.rat.dev"
[[registry.mirror]]
location = "docker.xuanyuan.me"
[[registry.mirror]]
location = "dockerproxy.net"
[[registry.mirror]]
location = "docker-registry.nmqu.com"
[[registry.mirror]]
location = "hub.amingg.com"
[[registry.mirror]]
location = "docker.amingg.com"
[[registry.mirror]]
location = "docker.hlmirror.com"
[[registry.mirror]]
location = "hub1.nat.tf"
[[registry.mirror]]
location = "hub2.nat.tf"
[[registry.mirror]]
location = "hub3.nat.tf"
[[registry.mirror]]
location = "hub4.nat.tf"
[[registry.mirror]]
location = "docker.m.daocloud.io"
[[registry.mirror]]
location = "docker.kejilion.pro"
[[registry.mirror]]
location = "hub.1panel.dev"
[[registry.mirror]]
location = "docker.apiba.cn"
[[registry.mirror]]
location = "proxy.vvvv.ee"
EOF
```
### 方法二:用户级配置
为当前用户创建配置文件:
```shell
mkdir -p ~/.config/containers
tee ~/.config/containers/registries.conf <<-'EOF'
unqualified-search-registries = ["docker.io"]
[[registry]]
prefix = "docker.io"
location = "docker.io"
[[registry.mirror]]
location = "docker.1ms.run"
[[registry.mirror]]
location = "docker.1panel.live"
[[registry.mirror]]
location = "docker.m.ixdev.cn"
[[registry.mirror]]
location = "hub.rat.dev"
[[registry.mirror]]
location = "docker.xuanyuan.me"
[[registry.mirror]]
location = "dockerproxy.net"
[[registry.mirror]]
location = "docker-registry.nmqu.com"
[[registry.mirror]]
location = "hub.amingg.com"
[[registry.mirror]]
location = "docker.amingg.com"
[[registry.mirror]]
location = "docker.hlmirror.com"
[[registry.mirror]]
location = "hub1.nat.tf"
[[registry.mirror]]
location = "hub2.nat.tf"
[[registry.mirror]]
location = "hub3.nat.tf"
[[registry.mirror]]
location = "hub4.nat.tf"
[[registry.mirror]]
location = "docker.m.daocloud.io"
[[registry.mirror]]
location = "docker.kejilion.pro"
[[registry.mirror]]
location = "hub.1panel.dev"
[[registry.mirror]]
location = "docker.apiba.cn"
[[registry.mirror]]
location = "proxy.vvvv.ee"
EOF
```

View File

@ -4,6 +4,90 @@ date: 2023-10-07 11:25:08
tags:
---
# PowerShell 7 使用 Oh My Posh 来美化命令行
## 安装 PowerShell 7
`PowerShell 7` 指的不是系统自带的 `powershell` ,而是新下载的(微软官方出品),当然这个教程也适用于系统自带的 `powershell`
微软官方文档地址https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.2
下载地址https://github.com/PowerShell/PowerShell/releases
或者可通过 Winget 方式下载安装
```powershell
winget search --id Microsoft.PowerShell
```
Output
```powershell
Name Id Version Source
---------------------------------------------------------------
PowerShell Microsoft.PowerShell 7.5.4.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.5 winget
```
使用 `--id` 参数安装 PowerShell 或 PowerShell 预览版
```powershell
winget install --id Microsoft.PowerShell --source winget
```
```powershell
winget install --id Microsoft.PowerShell.Preview --source winget
```
## 安装 Oh My Posh
官方文档地址https://ohmyposh.dev/
最好在管理员模式下运行 `powershell`
下载安装,在 `powershell` 命令行中输入
```powershell
winget install oh-my-posh
```
`powershell` 命令行中输入下面命令,打开 `$Profile` 进行设置,如果系统提示不存文件,是否创建,请点击创建
```powershell
notepad $Profile
```
将以下命令添加到 `$Profile` 文件中
```powershell
oh-my-posh init pwsh | Invoke-Expression
```
应用修改,则直接在命令行中执行 `. $Profile` ,如果出现错误等问题,请尝试关闭所有 `powershell` 命令窗口,重新打开,一般都会正常显示
### 配置环境变量
配置 `POSH_THEMES_PATH` 环境变量,最好配置成系统级别的,路径在 `C:\Users\<当前登录用户>\AppData\Local\Programs\oh-my-posh\themes` 下面。
### 更改主题
`powerShell` 命令行中输入 `Get-ChildItem $env:POSH_THEMES_PATH` 来获取所有的已安装主题
**预览主题(官方推荐方式):** 由于在终端里一次性渲染所有主题会很卡,官方建议直接去网页上看截图,然后记住名字即可。
- **[Oh My Posh 官方主题预览页 (Themes)](https://ohmyposh.dev/docs/themes)**
编辑 `$Profile` 文件
```powershell
notepad $Profile
```
`oh-my-posh init pwsh ...` 的部分後面加上 `--config "$env:POSH_THEMES_PATH/{主題名稱}.omp.json"`
将其内部文字改为:
```powershell
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/dracula.omp.json" | Invoke-Expression
```
# 文件
## 新建文件
@ -33,6 +117,10 @@ Set-Content my.ini -value ""
New-Item data -ItemType Directory
```
# 目录
# 做 sudo 命令
在Windows系统上sudo对应的就是管理员权限了。