查看一个运行容器中的进程资源使用情况
- $ sudo podman top <container_id>
- 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
停止一个运行中的容器
- $ sudo podman stop --latest
删除一个容器
- $ sudo podman rm --latest
以上这些特性基本上都和 Docker 一样,Podman 除了兼容这些特性外,还支持了一些新的特性。
给容器设置一个检查点
- $ sudo podman container checkpoint <container_id>
需要 CRIU 3.11 以上版本支持,CRIU 项目地址:https://criu.org/
根据检查点位置恢复容器
- $ sudo podman container restore <container_id>
迁移容器
Podman 支持将容器从一台机器迁移到另一台机器。
首先,在源机器上对容器设置检查点,并将容器打包到指定位置。
- $ 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
配置别名
如果习惯了使用 Docker 命令,可以直接给 Podman 配置一个别名来实现无缝转移。你只需要在 .bashrc 下加入以下行内容即可:
- $ echo "alias docker=podman" >> .bashrc
- $ source .bashrc
Podman 如何实现开机重启容器
由于 Podman 不再使用守护进程管理服务,所以不能通过守护进程去实现自动重启容器的功能。那如果要实现开机自动重启容器,又该如何实现呢?
其实方法很简单,现在大多数系统都已经采用 Systemd 作为守护进程管理工具。这里我们就可以使用 Systemd 来实现 Podman 开机重启容器,这里我们以启动一个 Nginx容器为例子。
首先,我们先运行一个 Nginx 容器。
- $ sudo podman run -t -d -p 80:80 --name nginx nginx
然后,在建立一个 Systemd 服务配置文件。
- $ vim /etc/systemd/system/nginx_container.service
-
- [Unit]
- Description=Podman Nginx Service
- After=network.target
- After=network-online.target
-
- [Service]
- Type=simple
- ExecStart=/usr/bin/podman start -a nginx
- ExecStop=/usr/bin/podman stop -t 10 nginx
- Restart=always
-
- [Install]
- WantedBy=multi-user.target
接下来,启用这个 Systemd 服务。
- $ sudo systemctl daemon-reload
- $ sudo systemctl enable nginx_container.service
- $ sudo systemctl start nginx_container.service
(编辑:ASP站长网)
|