请稍侯

podman 教程 podman

02 January 2024

Podman 教程

Podman 初学者教程 Podman 保姆级使用教程 Tutorial Documentation: https://devopscube.com/podman-tutorials/

Podman创建并启动虚拟机

$ brew install podman
  
$ podman machine init
$ podman machine start
   
# verify it works
$ podman info
$ podman run -dt -p 8080:80/tcp docker.io/library/httpd

Increasing VM Resources

podman machine init vm2 --cpus 2 --memory 8192 --rootful
# set rootful
podman machine set --rootful vm2

给podman添加证书

# cert文件转成base64字符串
cat some.cer  |base64

# ssh进入podman虚拟机
podman machine ssh
 
sudo su -
 
cd /etc/pki/ca-trust/source/anchors

#  some.cerbase64复制到txt文件,再用base64解码后添加到podmanca-trust下,再更新ca-trust
[root@localhost anchors]# vi temp.txt
[root@localhost anchors]# base64 -d temp.txt > some.cer
[root@localhost anchors]# cat some.cer
[root@localhost anchors]# update-ca-trust


# podman创建软链接
sudo ln -s /usr/local/Homebrew/bin/podman /usr/local/bin/docker

Podman 与 Docker 对比

# podman root context
systemctl enable --now podman.socket

# podman rootless context
systemctl --user enable --now podman.socket

# List ssh destination(s) for podman service(s).
podman system connection list

Run Portainer in a Podman rootless environment

podman run -d -p 9443:9443 \
  -p 8000:8000 \
  --security-opt label=disable \
  --name=portainer \
  --restart=always \
  -v /run/user/$(id -u)/podman/podman.sock:/var/run/docker.sock:Z \
  -v portainer_data:/data \
  portainer/portainer-ce:2.13.1

podman中pod的使用

# 创建一个空Pod,不指定该--name标志,podman 将创建一个具有随机名称的 pod
podman pod create --name demo-pod

# 列出pod
podman pod ls

# 列出 pod 中的所有容器
podman ps -a --pod

# 将容器添加到 Podman Pod
podman run -dt --pod demo-pod  nginx

# 启动、停止和删除 Podman Pod 内的容器
podman start <continer-id>
podman stop <continer-id>
podman rm <continer-id>

# 使用容器创建 Pod
podman run -dt --pod new:frontend --name nginx -p 8080:80 -v ~/docker/nginx/conf:/etc/nginx -v ~/docker/nginx/www:/usr/share/nginx/html docker.io/nginx

# 启动、停止和删除 Pod
podman pod stop <podname>
podman pod start <podname>
podman pod rm <podname>
# 强制删除 pod
podman pod rm -f <pod-name>


# 从 Podman Pod 定义生成 Kubernetes YAML
podman run -dt --pod new:webserver -p 8080:80 nginx
# 为 podman pod 生成 Kubernetes YAML
podman generate kube webserver
# 将生成的 YAML 重定向到文件
podman generate kube webserver >> webserver.yaml
# 使用play kube标志将pod YAML 文件作为 Podman pod 导入并运行
podman play kube webserver.yaml

参考:
FreeBSD (and Linux), Podman containers and Large Receive Offload. Boosting Network Performance in FreeBSD’s VNET Jails

fedora coreos - tutorial containers fedora coreos - Enabling SSH Password Authentication 从 CoreOS 迁移到 Fedora CoreOS 之 用 Podman 代替 Docker
Podman on macOS (M1 & QEMU 7)