podman-跨平台Docker桌面程序
官网:https://container-desktop.com
安装说明
你可以通过官网下载适用于WIN或mac的GUI程序
或者
可以从 Podman.io 网站下载
通过 Brew 安装
如果您确实希望使用 Brew,则必须首先安装 Homebrew。一旦您 已设置 brew,您可以使用命令安装 Podman
brew install podman
安装后,您需要创建并启动您的第一台 Podman 计算机:
podman machine init
podman machine start
然后,您可以使用以下方法验证安装信息:
podman info
运行示例容器
此示例容器将运行一个非常基本的 httpd 服务器(名为 basic_httpd),该服务器仅提供其索引 页。
podman run --name basic_httpd -dt -p 8080:80/tcp docker.io/nginx
由于容器在分离模式下运行,由命令中的 -d 表示,因此 Podman 将在容器 ID 运行后打印容器 ID。请注意,我们使用端口转发是为了能够 访问 HTTP 服务器。要成功运行,至少需要 slirp4netns v0.3.0。podman run
列出正在运行的容器
Podman ps 命令用于列出正在创建和正在运行的容器。
podman ps
注意:如果将 -a 添加到 ps 命令,Podman 将显示所有容器。
检查正在运行的容器
您可以“检查”正在运行的容器的元数据和有关自身的详细信息。我们甚至可以使用 inspect 子命令查看分配给容器的 IP 地址。由于容器在无根模式下运行,因此不会分配 IP 地址,并且该值将在 inspect 的输出中列为 “none”。
podman inspect basic_httpd | grep IPAddress\":
"SecondaryIPAddresses": null,
"IPAddress": "",
测试 httpd 服务器
由于我们没有容器的 IP 地址,我们可以测试主机之间的网络通信 操作系统和使用 Curl 的容器。以下命令应显示我们的 容器化 httpd 服务器。
curl http://localhost:8080
查看容器的日志
您也可以使用 Podman 查看容器的日志:
podman logs
10.88.0.1 - - [07/Feb/2018:15:22:11 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:30 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:31 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
10.88.0.1 - - [07/Feb/2018:15:22:31 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.55.1" "-"
查看容器的 PID
并且你可以用 top 在容器中观察 httpd pid。
podman top
UID PID PPID C STIME TTY TIME CMD
0 31873 31863 0 09:21 ? 00:00:00 nginx: master process nginx -g daemon off;
101 31889 31873 0 09:21 ? 00:00:00 nginx: worker process
对容器进行检查点
对容器执行检查点操作会停止容器,同时将容器中所有进程的状态写入磁盘。 这样,容器可以在以后恢复并继续运行,与 检查站。此功能需要在系统上安装 CRIU 3.11 或更高版本。 此功能不支持作为无根功能;因此,如果您想尝试一下,则需要使用相同的命令但使用 sudo 以 root 身份重新创建容器。
要对容器进行检查点操作,请使用:
sudo podman container checkpoint
还原容器
只能对以前检查点的容器恢复容器。还原的容器将 continue 在它被执行检查点的同一时间点运行。 要恢复容器,请使用:
sudo podman container restore
还原后,容器将像执行检查点之前一样再次响应请求。
curl http://:8080
迁移容器
要将容器从一个主机实时迁移到另一个主机,容器会在源上执行 checkpoint 操作 系统,传输到目标系统,然后在目标系统上恢复 系统。传输 checkpoint 时,可以指定 output-file。
在源系统上:
sudo podman container checkpoint -e /tmp/checkpoint.tar.gz
scp /tmp/checkpoint.tar.gz :/tmp
在目标系统上:
sudo podman container restore -i /tmp/checkpoint.tar.gz
还原后,容器将像执行检查点之前一样再次响应请求。这 容器将继续在目标系统上运行的时间。
curl http://:8080
停止容器
要停止 httpd 容器:
podman stop
您还可以使用 ps 子命令检查一个或多个容器的状态。在这种情况下,我们应该 使用 -a 参数列出所有容器。
podman ps -a
移除容器
要删除 httpd 容器:
podman rm
您可以通过运行 podman ps -a 来验证容器的删除。