Podman 的基本设置和使用

Podman 的基本设置和使用


安装Podman

熟悉Podman

  • 运行示例容器
//此示例容器将运行一个非常基本的 httpd 服务器,该服务器仅为其索引页提供服务。
[root@loaclhost ~]# podman run -dt -p 8080:8080/tcp -e HTTPD_VAR_RUN=/run/httpd -e HTTPD_MAIN_CONF_D_PATH=/etc/httpd/conf.d \
>                   -e HTTPD_MAIN_CONF_PATH=/etc/httpd/conf \
>                   -e HTTPD_CONTAINER_SCRIPTS_PATH=/usr/share/container-scripts/httpd/ \
>                   registry.fedoraproject.org/f29/httpd /usr/bin/run-httpd
Trying to pull registry.fedoraproject.org/f29/httpd:latest...
Getting image source signatures
Copying blob d77ff9f653ce done  
Copying blob aaf5ad2e1aa3 done  
Copying blob 7692efc5f81c done  
Copying config 25c76f9dcd done  
Writing manifest to image destination
Storing signatures
ba73d059596fd21fee26c88a499500344879b8147d9679f8543fcf5f05f56578

由于容器在分离模式下运行(在命令中由 -d 表示),因此 Podman 将在运行后打印容器 ID。请注意,我们使用端口转发来访问 HTTP 服务器。要成功运行,至少需要 slirp4netns v0.3.0。podman run
  • 列出正在运行的容器
//Podman ps 命令用于列出创建和运行的容器
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES
ba73d059596f  registry.fedoraproject.org/f29/httpd:latest  /usr/bin/run-http...  41 seconds ago  Up 42 seconds ago  0.0.0.0:8080->8080/tcp  suspicious_bell

注意:如果将 -a 添加到 ps 命令中,Podman 将显示所有容器
  • 检查正在运行的容器
//您可以“检查”正在运行的容器,以获取有关其自身的元数据和详细信息。我们甚至可以使用 inspect 子命令来查看分配给容器的 IP 地址。由于容器在无根模式下运行,因此不会分配 IP 地址,并且该值将在检查的输出中列为“无”
[root@loaclhost ~]# podman inspect -l | grep -i ipaddress
            "IPAddress": "10.88.0.2",
                    "IPAddress": "10.88.0.2",
注意:-l 是最新容器的便利参数。还可以使用容器的 ID 而不是 -l,-i忽略大小写
  • 测试 httpd 服务器
//由于我们没有容器的IP地址,因此我们可以使用curl测试主机操作系统和容器之间的网络通信。以下命令应显示容器化 httpd 服务器的索引页
[root@loaclhost ~]# curl http://localhost:8080
  • 查看容器的日志
//您还可以使用 Podman 查看容器的日志:
[root@loaclhost ~]# podman logs --latest
  • 查看容器的 pid
//你可以观察容器中的httpd pid与顶部
[root@loaclhost ~]# podman top -l
USER        PID         PPID        %CPU        ELAPSED          TTY         TIME        COMMAND
default     1           0           0.000       6m22.833566024s  pts/0       0s          httpd -D FOREGROUND 
default     24          1           0.000       6m22.833689494s  pts/0       0s          /usr/bin/coreutils --coreutils-prog-shebang=cat /usr/bin/cat 
......
  • 对容器执行检查点操作
//对容器执行检查点操作会停止容器,同时将容器中所有进程的状态写入磁盘。这样,容器以后可以还原,并在与检查点完全相同的时间点继续运行。此功能要求在系统上安装 CRIU 3.11 或更高版本。不支持此功能作为无根;因此,如果您想尝试一下,则需要使用相同的命令(但使用sudo)以root身份重新创建容器。

要对容器使用检查点,请使用:
[root@loaclhost ~]# podman container checkpoint -l
ba73d059596fd21fee26c88a499500344879b8147d9679f8543fcf5f05f56578
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                                        COMMAND               CREATED        STATUS                     PORTS                   NAMES
ba73d059596f  registry.fedoraproject.org/f29/httpd:latest  /usr/bin/run-http...  9 minutes ago  Exited (0) 20 seconds ago  0.0.0.0:8080->8080/tcp  suspicious_bell

//还原容器

还原容器仅适用于以前检查点的容器。还原的容器将继续在检查点操作的同一时间点运行。要恢复容器,请使用:
[root@loaclhost ~]# podman container restore -l
ba73d059596fd21fee26c88a499500344879b8147d9679f8543fcf5f05f56578
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                                        COMMAND               CREATED         STATUS             PORTS                   NAMES
ba73d059596f  registry.fedoraproject.org/f29/httpd:latest  /usr/bin/run-http...  10 minutes ago  Up 10 minutes ago  0.0.0.0:8080->8080/tcp  suspicious_bell
  • 迁移容器
//要将容器从一个主机实时迁移到另一个主机,容器将在迁移的源系统上执行检查点操作,传输到目标系统,然后在目标系统上还原。传输检查点时,可以指定输出文件。

在源系统上:
sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.gz
scp /tmp/checkpoint.tar.gz <destination_system>:/tmp

在目标系统上:
sudo podman container restore -i /tmp/checkpoint.tar.gz

还原后,容器将像检查点之前一样再次应答请求。这一次,容器将继续在目标系统上运行。
curl http://<IP_address>:8080
  • 停止容器
//要停止 httpd 容器,请执行以下操作:
[root@loaclhost ~]# podman stop --latest
ba73d059596fd21fee26c88a499500344879b8147d9679f8543fcf5f05f56578

//您还可以使用 ps 子命令检查一个或多个容器的状态。在这种情况下,我们应该使用 -a 参数列出所有容器
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE                                        COMMAND               CREATED         STATUS                     PORTS                   NAMES
ba73d059596f  registry.fedoraproject.org/f29/httpd:latest  /usr/bin/run-http...  16 minutes ago  Exited (0) 30 seconds ago  0.0.0.0:8080->8080/tcp  suspicious_bell
  • 移除容器
//删除 httpd 容器:
[root@loaclhost ~]# podman rm --latest
ba73d059596fd21fee26c88a499500344879b8147d9679f8543fcf5f05f56578

//您可以通过运行 podman ps -a 来验证容器的删除
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES
odman ps -a 来验证容器的删除
[root@loaclhost ~]# podman ps -a
CONTAINER ID  IMAGE       COMMAND     CREATED     STATUS      PORTS       NAMES
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便投投

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值