使用podman generate --help查看用法
[root@podman ~]# podman generate --help
Generate structured data based on containers, pods or volumes
Description:
Generate structured data (e.g., Kubernetes YAML or systemd units) based on containers, pods or volumes.
Usage:
podman generate [command]
Available Commands:
kube Generate Kubernetes YAML from containers, pods or volumes.
systemd Generate systemd units.
使用podman generate systemd --help查看用法:
[root@podman ~]# podman generate systemd --help
Generate systemd units.
Description:
Generate systemd units for a pod or container.
The generated units can later be controlled via systemctl(1).
Usage:
podman generate systemd [options] {CONTAINER|POD}
Examples:
podman generate systemd CTR
podman generate systemd --new --time 10 CTR
podman generate systemd --files --name POD
Options:
--container-prefix string Systemd unit name prefix for containers (default "container")
-f, --files Generate .service files instead of printing to stdout
--format string Print the created units in specified format (json)
-n, --name Use container/pod names instead of IDs
--new Create a new container or pod instead of starting an existing one
--no-header Skip header generation
--pod-prefix string Systemd unit name prefix for pods (default "pod")
--restart-policy string Systemd restart-policy (default "on-failure")
--separator string Systemd unit name separator between name/id and prefix (default "-")
-t, --time uint Stop timeout override (default 10)
root Podman容器服务自启动
[root@podman ~]# docker run -tid --name web nginx
ecc9ed4d4aa9cdae2ad9d03c035b44506edced027635ee71bb9824989d57bd08
[root@podman ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ecc9ed4d4aa9 docker.io/library/nginx:latest nginx -g daemon o... 7 seconds ago Up 5 seconds ago web
[root@podman ~]# docker generate systemd --files --name web
/root/container-web.service
[root@podman ~]#mv container-web.service /usr/lib/systemd/system/
[root@podman ~]# systemctl status container-web
● container-web.service - Podman container-web.serv>
Loaded: loaded (/usr/lib/systemd/system/containe>
Active: inactive (dead)
Docs: man:podman-generate-systemd(1)
lines 1-4/4 (END)
[root@podman ~]# systemctl enable --now container-web
[root@podman ~]# systemctl status container-web
● container-web.service - Podman container-web.service
Loaded: loaded (/usr/lib/systemd/system/container-web.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-15 21:42:26 CST; 36s ago
Docs: man:podman-generate-systemd(1)
Main PID: 28486 (conmon)
Tasks: 0 (limit: 4743)
Memory: 712.0K
CGroup: /system.slice/container-web.service
‣ 28486 /usr/bin/conmon --api-version 1 -c ecc9ed4d4aa9cdae2ad9d03c035b44506edced027635ee71bb9824989d57bd08 -u>
12月 15 21:42:26 podman systemd[1]: Starting Podman container-web.service...
12月 15 21:42:26 podman systemd[1]: Started Podman container-web.service.
非根用户容器开机自启
[kk@podman ~]$ podman run -tid --name web nginx
ca43db5683e830a6c052861a341ecac328f0656c3a13045312454d5dd240f25b
[kk@podman ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca43db5683e8 docker.io/library/nginx:latest nginx -g daemon o... 11 seconds ago Up 11 seconds ago web
创建systemd目录生成相关文件
[kk@podman ~]$ podman run -tid --name web nginx
ca43db5683e830a6c052861a341ecac328f0656c3a1304531245
4d5dd240f25b
[kk@podman ~]$ docker ps
CONTAINER ID IMAGE COMMAN
D CREATED STATUS P
ORTS NAMES
ca43db5683e8 docker.io/library/nginx:latest nginx
-g daemon o... 11 seconds ago Up 11 seconds ago
web
[kk@podman ~]$ mkdir -p ~/.config/systemd/user
[kk@podman ~]$ podman generate systemd --name web --files --new
/home/kk/container-web.service
[kk@podman ~]$ ls
container-web.service
[kk@podman ~]$ mv container-web.service ~/.config/systemd/user
以普通用户执行systemd开机自启容器
[kk@podman user]$ sudo systemctl --user daemon-reload
[sudo] kk 的密码:
kk 不在 sudoers 文件中。此事将被报告。
[kk@podman user]$ systemctl --user enable --now container-web.service
Failed to connect to bus: 没有那个文件或目录
[kk@podman user]$ sudo systemctl --user enable --now container-web.service
[sudo] kk 的密码:
kk 不在 sudoers 文件中。此事将被报告。
[kk@podman user]$ vim /etc/sudoers
[kk@podman user]$ systemctl status container-web.service
● container-web.service - Podman container-web.service
Loaded: loaded (/usr/lib/systemd/system/container-web.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-15 21:42:26 CST; 26min ago
Docs: man:podman-generate-systemd(1)
Main PID: 28486 (conmon)
Tasks: 0 (limit: 4743)
Memory: 712.0K
CGroup: /system.slice/container-web.service
‣ 28486 /usr/bin/conmon --api-version 1 -c ecc9ed4d4aa9cdae2ad9d03c035b44506edced027635ee71bb9824989d57bd08 -u>
lines 1-9/9 (END)
[root@podman ~]# docker run -tid --name test busybox
9280267da4ff961dd82cd898bd65c97ecef4b62afa14b33739ca1fb997321bd9
[root@podman ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ecc9ed4d4aa9 docker.io/library/nginx:latest nginx -g daemon o... 42 minutes ago Up 42 minutes ago web
9280267da4ff docker.io/library/busybox:latest sh 6 seconds ago Up 6 seconds ago test
[root@podman ~]# docker exec -it test /bin/sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
link/ether 32:b7:de:70:ab:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.3/24 brd 192.168.200.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::30b7:deff:fe70:ab92/64 scope link
valid_lft forever preferred_lft forever
podman 常用命令
search 查找镜像
[root@podman ~]# podman search httpd --filter=is-official //指定查找官方版本的httpd
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/library/httpd The Apache HTTP Server Project 3794 [OK]
[root@podman ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest f652ca386ed1 11 days ago 146 MB
podman run 运行容器
[root@podman ~]# podman run -it --rm --name nginx docker.io/library/nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
podman ps 列出正在运行的容器
[root@podman ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32955d96f3e4 docker.io/library/nginx:latest nginx -g daemon o... 25 seconds ago Up 25 seconds ago nginx
//如果添加 -a 命令,Podman 将显示所有容器(已创建、已退出、正在运行等)
[root@podman ~]# podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32955d96f3e4 docker.io/library/nginx:latest nginx -g daemon o... About a minute ago Up About a minute ago nginx
[root@podman ~]# podman logs -l //查看最新容器日志
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2021/12/14 10:23:57 [notice] 1#1: using the "epoll" event method
2021/12/14 10:23:57 [notice] 1#1: nginx/1.21.4
2021/12/14 10:23:57 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6)
2021/12/14 10:23:57 [notice] 1#1: OS: Linux 4.18.0-257.el8.x86_64
2021/12/14 10:23:57 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2021/12/14 10:23:57 [notice] 1#1: start worker processes
2021/12/14 10:23:57 [notice] 1#1: start worker process 26
2021/12/14 10:23:57 [notice] 1#1: start worker process 27
2021/12/14 10:23:57 [notice] 1#1: start worker process 28
2021/12/14 10:23:57 [notice] 1#1: start worker process 29
podman top 查看容器的 pids
[root@podman ~]# podman top 32955d96f3e4
USER PID PPID %CPU ELAPSED TTY TIME COMMAND
root 1 0 0.000 11m13.821628928s pts/0 0s nginx: master process nginx -g daemon off;
nginx 26 1 0.000 11m13.822843688s pts/0 0s nginx: worker process
nginx 27 1 0.000 11m13.823501411s pts/0 0s nginx: worker process
nginx 28 1 0.000 11m13.823698742s pts/0 0s nginx: worker process
nginx 29 1 0.000 11m13.823936194s pts/0 0s nginx: worker process
[root@podman ~]# podman top -l //查看最新容器
USER PID PPID %CPU ELAPSED TTY TIME COMMAND
root 1 0 0.000 11m23.09833528s pts/0 0s nginx: master process nginx -g daemon off;
nginx 26 1 0.000 11m23.098725746s pts/0 0s nginx: worker process
nginx 27 1 0.000 11m23.098964414s pts/0 0s nginx: worker process
nginx 28 1 0.000 11m23.099398944s pts/0 0s nginx: worker process
nginx 29 1 0.000 11m23.099511946s pts/0 0s nginx: worker process
podman stop 停止容器
[root@podman ~]# podman stop 32955d96f3e4
32955d96f3e4
[root@podman ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
podman start 启动容器
[root@podman ~]# podman start 32ae6ac14292
32ae6ac14292
[root@podman ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32ae6ac14292 docker.io/library/nginx:latest nginx -g daemon o... 28 seconds ago Up 9 seconds ago nginx
podman rm 删除容器
//-f 强制删除
[root@podman ~]# podman rm -f 32ae6ac14292
32ae6ac142924c9c1844ed3ec4ac7704f0c881adcd1df87e79bdbcb389820d75
[root@podman ~]# podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
podman rmi 删除镜像
//-f 强制删除
[root@podman ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest f652ca386ed1 12 days ago 146 MB
[root@podman ~]# podman rmi -f f652ca386ed1
Untagged: docker.io/library/nginx:latest
Deleted: f652ca386ed135a4cbe356333e08ef0816f81b2ac8d0619af01e2b256837ed3e
[root@podman ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
pdoman容器的开机自启使用podman generate --help查看用法[root@podman ~]# podman generate --helpGenerate structured data based on containers, pods or volumesDescription: Generate structured data (e.g., Kubernetes YAML or systemd units) based on containers, pods or