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
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.cer的base64复制到txt文件,再用base64解码后添加到podman的ca-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 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)
