RHCSA 02 - 自启动rootless容器

前言

本文演示如何创建自启动rootless容器。

什么是rootless容器?

一般我们看到的容器,都是使用root账号启动。而rootless容器则指的是以非root账号启动的容器。

实践

步骤1:安装容器包

[root@ad57f7d54660 ~]# dnf module install -y container-tools
Rocky Linux 8 - AppStream                                            19 kB/s | 4.8 kB     00:00    
Rocky Linux 8 - AppStream                                            19 MB/s | 8.8 MB     00:00    
Rocky Linux 8 - BaseOS                                               18 kB/s | 4.3 kB     00:00    
Rocky Linux 8 - BaseOS                                              9.9 MB/s | 3.6 MB     00:00    
Rocky Linux 8 - Extras                                               16 kB/s | 3.5 kB     00:00    
Rocky Linux 8 - Extras                                               39 kB/s |  11 kB     00:00    
Dependencies resolved.
====================================================================================================
 Package                       Arch    Version                                     Repository  Size
====================================================================================================
Upgrading:
 audit                         x86_64  3.0.7-2.el8.2                               baseos     262 k
 audit-libs                    x86_64  3.0.7-2.el8.2                               baseos     122 k
 libsemanage                   x86_64  2.9-8.el8                                   baseos     167 k
 platform-python-pip           noarch  9.0.3-22.el8.rocky.0                        baseos     1.6 M
 policycoreutils               x86_64  2.9-19.el8                                  baseos     373 k
Installing group/module packages:
 buildah                       x86_64  1:1.24.2-4.module+el8.6.0+971+69b94baf      appstream  8.0 M
 cockpit-podman                noarch  43-1.module+el8.6.0+971+69b94baf            appstream  492 k
 conmon                        x86_64  2:2.1.0-1.module+el8.6.0+971+69b94baf       appstream   54 k
 container-selinux             noarch  2:2.179.1-1.module+el8.6.0+971+69b94baf     appstream   57 k
 containernetworking-plugins   x86_64  1:1.0.1-2.module+el8.6.0+971+69b94baf       appstream   18 M
 containers-common             x86_64  2:1-27.module+el8.6.0+971+69b94baf          appstream   95 k
 criu                          x86_64  3.15-3.module+el8.6.0+971+69b94baf          appstream  517 k
 crun                          x86_64  1.4.4-1.module+el8.6.0+971+69b94baf         appstream  208 k
 fuse-overlayfs                x86_64  1.8.2-1.module+el8.6.0+971+69b94baf         appstream   72 k
 libslirp                      x86_64  4.4.0-1.module+el8.6.0+971+69b94baf         appstream   69 k
 podman                        x86_64  2:4.0.2-6.module+el8.6.0+971+69b94baf       appstream   13 M
 python3-podman                noarch  4.0.0-1.module+el8.6.0+785+d1251653         appstream  148 k
 runc                          x86_64  1:1.0.3-2.module+el8.6.0+971+69b94baf       appstream  3.0 M
 skopeo                        x86_64  2:1.6.1-2.module+el8.6.0+971+69b94baf       appstream  6.7 M
 slirp4netns                   x86_64  1.1.8-2.module+el8.6.0+971+69b94baf         appstream   50 k
 toolbox                       x86_64  0.0.99.3-0.4.module+el8.6.0+971+69b94baf    appstream  2.2 M
 udica                         noarch  0.2.6-3.module+el8.6.0+971+69b94baf         appstream   48 k
Installing dependencies:
 checkpolicy                   x86_64  2.9-1.el8                                   baseos     345 k
 cockpit-bridge                x86_64  264.1-1.el8                                 baseos     533 k
 dejavu-fonts-common           noarch  2.35-7.el8                                  baseos      73 k
 fontpackages-filesystem       noarch  1.44-22.el8                                 baseos      15 k
 fuse-common                   x86_64  3.3.0-15.el8                                baseos      21 k
 fuse3                         x86_64  3.3.0-15.el8                                baseos      53 k
 fuse3-libs                    x86_64  3.3.0-15.el8                                baseos      94 k
 glib-networking               x86_64  2.56.1-1.1.el8                              baseos     153 k
 gsettings-desktop-schemas     x86_64  3.32.0-6.el8                                baseos     632 k
 json-glib                     x86_64  1.4.4-1.el8                                 baseos     143 k
 libmodman                     x86_64  2.0.1-17.el8                                baseos      35 k
 libnet                        x86_64  1.1.6-15.el8                                appstream   66 k
 libproxy                      x86_64  0.4.15-5.2.el8                              baseos      73 k
 podman-catatonit              x86_64  2:4.0.2-6.module+el8.6.0+971+69b94baf       appstream  353 k
 policycoreutils-python-utils  noarch  2.9-19.el8                                  baseos     252 k
 protobuf-c                    x86_64  1.3.0-6.el8                                 appstream   36 k
 python3-audit                 x86_64  3.0.7-2.el8.2                               baseos      86 k
 python3-chardet               noarch  3.0.4-7.el8                                 baseos     194 k
 python3-idna                  noarch  2.5-5.el8                                   baseos      96 k
 python3-libsemanage           x86_64  2.9-8.el8                                   baseos     127 k
 python3-pip                   noarch  9.0.3-22.el8.rocky.0                        appstream   19 k
 python3-policycoreutils       noarch  2.9-19.el8                                  baseos     2.2 M
 python3-pysocks               noarch  1.6.8-3.el8                                 baseos      33 k
 python3-pytoml                noarch  0.1.14-5.git7dea353.el8                     appstream   24 k
 python3-pyxdg                 noarch  0.25-16.el8                                 appstream   93 k
 python3-requests              noarch  2.20.0-2.1.el8_1                            baseos     122 k
 python3-setools               x86_64  4.3.0-3.el8                                 baseos     623 k
 python3-setuptools            noarch  39.2.0-6.el8                                baseos     162 k
 python3-urllib3               noarch  1.24.2-5.el8                                baseos     176 k
 python36                      x86_64  3.6.8-38.module+el8.5.0+671+195e4563        appstream   18 k
 shadow-utils-subid            x86_64  2:4.6-16.el8                                baseos     111 k
 yajl                          x86_64  2.1.0-10.el8                                appstream   40 k
Installing weak dependencies:
 abattis-cantarell-fonts       noarch  0.0.25-6.el8                                appstream  154 k
 dejavu-sans-mono-fonts        noarch  2.35-7.el8                                  baseos     446 k
 tar                           x86_64  2:1.30-5.el8                                baseos     837 k
Installing module profiles:
 container-tools/common                                                                            
Enabling module streams:
 container-tools                       rhel8                                                       
 python36                              3.6                                                         

Transaction Summary
====================================================================================================
Install  52 Packages
Upgrade   5 Packages

Total download size: 64 M
Downloading Packages:
(1/57): abattis-cantarell-fonts-0.0.25-6.el8.noarch.rpm             2.0 MB/s | 154 kB     00:00    A
(2/57): conmon-2.1.0-1.module+el8.6.0+971+69b94baf.x86_64.rpm       3.6 MB/s |  54 kB     00:00    
(3/57): cockpit-podman-43-1.module+el8.6.0+971+69b94baf.noarch.rpm  4.8 MB/s | 492 kB     00:00    
(4/57): container-selinux-2.179.1-1.module+el8.6.0+971+69b94baf.noa 5.8 MB/s |  57 kB     00:00    
(5/57): containers-common-1-27.module+el8.6.0+971+69b94baf.x86_64.r  12 MB/s |  95 kB     00:00    
(6/57): criu-3.15-3.module+el8.6.0+971+69b94baf.x86_64.rpm           25 MB/s | 517 kB     00:00    
(7/57): crun-1.4.4-1.module+el8.6.0+971+69b94baf.x86_64.rpm          21 MB/s | 208 kB     00:00    
(8/57): fuse-overlayfs-1.8.2-1.module+el8.6.0+971+69b94baf.x86_64.r  11 MB/s |  72 kB     00:00    
(9/57): libnet-1.1.6-15.el8.x86_64.rpm                               11 MB/s |  66 kB     00:00    
(10/57): libslirp-4.4.0-1.module+el8.6.0+971+69b94baf.x86_64.rpm     11 MB/s |  69 kB     00:00    
(11/57): buildah-1.24.2-4.module+el8.6.0+971+69b94baf.x86_64.rpm     24 MB/s | 8.0 MB     00:00    
(12/57): podman-catatonit-4.0.2-6.module+el8.6.0+971+69b94baf.x86_6  21 MB/s | 353 kB     00:00    
(13/57): protobuf-c-1.3.0-6.el8.x86_64.rpm                          9.3 MB/s |  36 kB     00:00    
(14/57): python3-pip-9.0.3-22.el8.rocky.0.noarch.rpm                4.9 MB/s |  19 kB     00:00    
(15/57): python3-podman-4.0.0-1.module+el8.6.0+785+d1251653.noarch.  16 MB/s | 148 kB     00:00    
(16/57): python3-pytoml-0.1.14-5.git7dea353.el8.noarch.rpm          4.4 MB/s |  24 kB     00:00    
(17/57): python3-pyxdg-0.25-16.el8.noarch.rpm                        18 MB/s |  93 kB     00:00    
(18/57): python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64.rpm   5.0 MB/s |  18 kB     00:00    
(19/57): runc-1.0.3-2.module+el8.6.0+971+69b94baf.x86_64.rpm         32 MB/s | 3.0 MB     00:00    
(20/57): podman-4.0.2-6.module+el8.6.0+971+69b94baf.x86_64.rpm       33 MB/s |  13 MB     00:00    
(21/57): slirp4netns-1.1.8-2.module+el8.6.0+971+69b94baf.x86_64.rpm 7.1 MB/s |  50 kB     00:00    
(22/57): toolbox-0.0.99.3-0.4.module+el8.6.0+971+69b94baf.x86_64.rp  23 MB/s | 2.2 MB     00:00    
(23/57): udica-0.2.6-3.module+el8.6.0+971+69b94baf.noarch.rpm       4.8 MB/s |  48 kB     00:00    
(24/57): yajl-2.1.0-10.el8.x86_64.rpm                               7.0 MB/s |  40 kB     00:00    
(25/57): checkpolicy-2.9-1.el8.x86_64.rpm                            33 MB/s | 345 kB     00:00    
(26/57): cockpit-bridge-264.1-1.el8.x86_64.rpm                       42 MB/s | 533 kB     00:00    
(27/57): skopeo-1.6.1-2.module+el8.6.0+971+69b94baf.x86_64.rpm       26 MB/s | 6.7 MB     00:00    
(28/57): dejavu-fonts-common-2.35-7.el8.noarch.rpm                  2.3 MB/s |  73 kB     00:00    
(29/57): fontpackages-filesystem-1.44-22.el8.noarch.rpm             3.1 MB/s |  15 kB     00:00    
(30/57): fuse-common-3.3.0-15.el8.x86_64.rpm                        4.9 MB/s |  21 kB     00:00    
(31/57): dejavu-sans-mono-fonts-2.35-7.el8.noarch.rpm                23 MB/s | 446 kB     00:00    
(32/57): fuse3-3.3.0-15.el8.x86_64.rpm                              7.1 MB/s |  53 kB     00:00    
(33/57): fuse3-libs-3.3.0-15.el8.x86_64.rpm                          15 MB/s |  94 kB     00:00    
(34/57): glib-networking-2.56.1-1.1.el8.x86_64.rpm                   16 MB/s | 153 kB     00:00    
(35/57): json-glib-1.4.4-1.el8.x86_64.rpm                            18 MB/s | 143 kB     00:00    
(36/57): gsettings-desktop-schemas-3.32.0-6.el8.x86_64.rpm           34 MB/s | 632 kB     00:00    
(37/57): libmodman-2.0.1-17.el8.x86_64.rpm                          5.2 MB/s |  35 kB     00:00    
(38/57): libproxy-0.4.15-5.2.el8.x86_64.rpm                          16 MB/s |  73 kB     00:00    
(39/57): policycoreutils-python-utils-2.9-19.el8.noarch.rpm          32 MB/s | 252 kB     00:00    
(40/57): python3-audit-3.0.7-2.el8.2.x86_64.rpm                     9.3 MB/s |  86 kB     00:00    
(41/57): python3-chardet-3.0.4-7.el8.noarch.rpm                      21 MB/s | 194 kB     00:00    
(42/57): python3-idna-2.5-5.el8.noarch.rpm                           10 MB/s |  96 kB     00:00    
(43/57): python3-libsemanage-2.9-8.el8.x86_64.rpm                    14 MB/s | 127 kB     00:00    
(44/57): python3-pysocks-1.6.8-3.el8.noarch.rpm                     6.6 MB/s |  33 kB     00:00    
(45/57): containernetworking-plugins-1.0.1-2.module+el8.6.0+971+69b  24 MB/s |  18 MB     00:00    
(46/57): python3-requests-2.20.0-2.1.el8_1.noarch.rpm               1.9 MB/s | 122 kB     00:00    
(47/57): python3-setuptools-39.2.0-6.el8.noarch.rpm                 9.6 MB/s | 162 kB     00:00    
(48/57): python3-urllib3-1.24.2-5.el8.noarch.rpm                     16 MB/s | 176 kB     00:00    
(49/57): python3-setools-4.3.0-3.el8.x86_64.rpm                      11 MB/s | 623 kB     00:00    
(50/57): shadow-utils-subid-4.6-16.el8.x86_64.rpm                   3.6 MB/s | 111 kB     00:00    
(51/57): tar-1.30-5.el8.x86_64.rpm                                   22 MB/s | 837 kB     00:00    
(52/57): audit-libs-3.0.7-2.el8.2.x86_64.rpm                         14 MB/s | 122 kB     00:00    
(53/57): python3-policycoreutils-2.9-19.el8.noarch.rpm               12 MB/s | 2.2 MB     00:00    
(54/57): audit-3.0.7-2.el8.2.x86_64.rpm                             3.3 MB/s | 262 kB     00:00    
(55/57): libsemanage-2.9-8.el8.x86_64.rpm                           4.3 MB/s | 167 kB     00:00    
(56/57): policycoreutils-2.9-19.el8.x86_64.rpm                       23 MB/s | 373 kB     00:00    
(57/57): platform-python-pip-9.0.3-22.el8.rocky.0.noarch.rpm         31 MB/s | 1.6 MB     00:00    
----------------------------------------------------------------------------------------------------
Total                                                                45 MB/s |  64 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                            1/1 
  Running scriptlet: audit-libs-3.0.7-2.el8.2.x86_64                                            1/1 
  Upgrading        : audit-libs-3.0.7-2.el8.2.x86_64                                           1/62 
  Upgrading        : libsemanage-2.9-8.el8.x86_64                                              2/62 
  Installing       : python3-libsemanage-2.9-8.el8.x86_64                                      3/62 
  Upgrading        : policycoreutils-2.9-19.el8.x86_64                                         4/62 
  Running scriptlet: policycoreutils-2.9-19.el8.x86_64                                         4/62 
  Installing       : fuse3-libs-3.3.0-15.el8.x86_64                                            5/62 
  Running scriptlet: fuse3-libs-3.3.0-15.el8.x86_64                                            5/62 
  Installing       : fontpackages-filesystem-1.44-22.el8.noarch                                6/62 
  Installing       : abattis-cantarell-fonts-0.0.25-6.el8.noarch                               7/62 
  Installing       : dejavu-fonts-common-2.35-7.el8.noarch                                     8/62 
  Installing       : dejavu-sans-mono-fonts-2.35-7.el8.noarch                                  9/62 
  Installing       : gsettings-desktop-schemas-3.32.0-6.el8.x86_64                            10/62 
  Installing       : shadow-utils-subid-2:4.6-16.el8.x86_64                                   11/62 
  Installing       : python3-audit-3.0.7-2.el8.2.x86_64                                       12/62 
  Upgrading        : platform-python-pip-9.0.3-22.el8.rocky.0.noarch                          13/62 
  Installing       : tar-2:1.30-5.el8.x86_64                                                  14/62 
  Running scriptlet: tar-2:1.30-5.el8.x86_64                                                  14/62 
  Installing       : python3-setuptools-39.2.0-6.el8.noarch                                   15/62 
  Installing       : python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64                     16/62 
  Running scriptlet: python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64                     16/62 
  Installing       : python3-pip-9.0.3-22.el8.rocky.0.noarch                                  17/62 
  Installing       : python3-setools-4.3.0-3.el8.x86_64                                       18/62 
  Installing       : python3-pysocks-1.6.8-3.el8.noarch                                       19/62 
  Installing       : python3-urllib3-1.24.2-5.el8.noarch                                      20/62 
  Installing       : python3-idna-2.5-5.el8.noarch                                            21/62 
  Installing       : python3-chardet-3.0.4-7.el8.noarch                                       22/62 
  Installing       : python3-requests-2.20.0-2.1.el8_1.noarch                                 23/62 
  Installing       : libmodman-2.0.1-17.el8.x86_64                                            24/62 
  Running scriptlet: libmodman-2.0.1-17.el8.x86_64                                            24/62 
  Installing       : libproxy-0.4.15-5.2.el8.x86_64                                           25/62 
  Running scriptlet: libproxy-0.4.15-5.2.el8.x86_64                                           25/62 
  Installing       : glib-networking-2.56.1-1.1.el8.x86_64                                    26/62 
  Installing       : json-glib-1.4.4-1.el8.x86_64                                             27/62 
  Installing       : cockpit-bridge-264.1-1.el8.x86_64                                        28/62 
  Installing       : fuse-common-3.3.0-15.el8.x86_64                                          29/62 
  Installing       : fuse3-3.3.0-15.el8.x86_64                                                30/62 
  Installing       : fuse-overlayfs-1.8.2-1.module+el8.6.0+971+69b94baf.x86_64                31/62 
  Running scriptlet: fuse-overlayfs-1.8.2-1.module+el8.6.0+971+69b94baf.x86_64                31/62 
  Installing       : checkpolicy-2.9-1.el8.x86_64                                             32/62 
  Installing       : python3-policycoreutils-2.9-19.el8.noarch                                33/62 
  Installing       : policycoreutils-python-utils-2.9-19.el8.noarch                           34/62 
  Running scriptlet: container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch         35/62 
  Installing       : container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch         35/62 
  Running scriptlet: container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch         35/62 
  Installing       : yajl-2.1.0-10.el8.x86_64                                                 36/62 
  Installing       : crun-1.4.4-1.module+el8.6.0+971+69b94baf.x86_64                          37/62 
  Installing       : python3-pyxdg-0.25-16.el8.noarch                                         38/62 
  Installing       : python3-pytoml-0.1.14-5.git7dea353.el8.noarch                            39/62 
  Installing       : protobuf-c-1.3.0-6.el8.x86_64                                            40/62 
  Installing       : libslirp-4.4.0-1.module+el8.6.0+971+69b94baf.x86_64                      41/62 
  Installing       : slirp4netns-1.1.8-2.module+el8.6.0+971+69b94baf.x86_64                   42/62 
  Installing       : libnet-1.1.6-15.el8.x86_64                                               43/62 
  Running scriptlet: libnet-1.1.6-15.el8.x86_64                                               43/62 
  Installing       : criu-3.15-3.module+el8.6.0+971+69b94baf.x86_64                           44/62 
  Installing       : runc-1:1.0.3-2.module+el8.6.0+971+69b94baf.x86_64                        45/62 
  Installing       : containers-common-2:1-27.module+el8.6.0+971+69b94baf.x86_64              46/62 
  Installing       : containernetworking-plugins-1:1.0.1-2.module+el8.6.0+971+69b94baf.x86_   47/62 
  Installing       : conmon-2:2.1.0-1.module+el8.6.0+971+69b94baf.x86_64                      48/62 
  Installing       : podman-catatonit-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64            49/62 
  Installing       : podman-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64                      50/62 
  Installing       : cockpit-podman-43-1.module+el8.6.0+971+69b94baf.noarch                   51/62 
  Installing       : toolbox-0.0.99.3-0.4.module+el8.6.0+971+69b94baf.x86_64                  52/62 
  Installing       : buildah-1:1.24.2-4.module+el8.6.0+971+69b94baf.x86_64                    53/62 
  Installing       : skopeo-2:1.6.1-2.module+el8.6.0+971+69b94baf.x86_64                      54/62 
  Installing       : python3-podman-4.0.0-1.module+el8.6.0+785+d1251653.noarch                55/62 
  Installing       : udica-0.2.6-3.module+el8.6.0+971+69b94baf.noarch                         56/62 
  Upgrading        : audit-3.0.7-2.el8.2.x86_64                                               57/62 
  Running scriptlet: audit-3.0.7-2.el8.2.x86_64                                               57/62 
  Running scriptlet: policycoreutils-2.9-16.el8.x86_64                                        58/62 
  Cleanup          : policycoreutils-2.9-16.el8.x86_64                                        58/62 
  Running scriptlet: audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64                           59/62 
  Cleanup          : audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64                           59/62 
  Running scriptlet: audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64                           59/62 
  Cleanup          : platform-python-pip-9.0.3-20.el8.rocky.0.noarch                          60/62 
  Cleanup          : libsemanage-2.9-6.el8.x86_64                                             61/62 
  Cleanup          : audit-libs-3.0-0.17.20191104git1c2f876.el8.1.x86_64                      62/62 
  Running scriptlet: container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch         62/62 
  Running scriptlet: audit-libs-3.0-0.17.20191104git1c2f876.el8.1.x86_64                      62/62 
  Verifying        : abattis-cantarell-fonts-0.0.25-6.el8.noarch                               1/62 
  Verifying        : buildah-1:1.24.2-4.module+el8.6.0+971+69b94baf.x86_64                     2/62 
  Verifying        : cockpit-podman-43-1.module+el8.6.0+971+69b94baf.noarch                    3/62 
  Verifying        : conmon-2:2.1.0-1.module+el8.6.0+971+69b94baf.x86_64                       4/62 
  Verifying        : container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch          5/62 
  Verifying        : containernetworking-plugins-1:1.0.1-2.module+el8.6.0+971+69b94baf.x86_    6/62 
  Verifying        : containers-common-2:1-27.module+el8.6.0+971+69b94baf.x86_64               7/62 
  Verifying        : criu-3.15-3.module+el8.6.0+971+69b94baf.x86_64                            8/62 
  Verifying        : crun-1.4.4-1.module+el8.6.0+971+69b94baf.x86_64                           9/62 
  Verifying        : fuse-overlayfs-1.8.2-1.module+el8.6.0+971+69b94baf.x86_64                10/62 
  Verifying        : libnet-1.1.6-15.el8.x86_64                                               11/62 
  Verifying        : libslirp-4.4.0-1.module+el8.6.0+971+69b94baf.x86_64                      12/62 
  Verifying        : podman-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64                      13/62 
  Verifying        : podman-catatonit-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64            14/62 
  Verifying        : protobuf-c-1.3.0-6.el8.x86_64                                            15/62 
  Verifying        : python3-pip-9.0.3-22.el8.rocky.0.noarch                                  16/62 
  Verifying        : python3-podman-4.0.0-1.module+el8.6.0+785+d1251653.noarch                17/62 
  Verifying        : python3-pytoml-0.1.14-5.git7dea353.el8.noarch                            18/62 
  Verifying        : python3-pyxdg-0.25-16.el8.noarch                                         19/62 
  Verifying        : python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64                     20/62 
  Verifying        : runc-1:1.0.3-2.module+el8.6.0+971+69b94baf.x86_64                        21/62 
  Verifying        : skopeo-2:1.6.1-2.module+el8.6.0+971+69b94baf.x86_64                      22/62 
  Verifying        : slirp4netns-1.1.8-2.module+el8.6.0+971+69b94baf.x86_64                   23/62 
  Verifying        : toolbox-0.0.99.3-0.4.module+el8.6.0+971+69b94baf.x86_64                  24/62 
  Verifying        : udica-0.2.6-3.module+el8.6.0+971+69b94baf.noarch                         25/62 
  Verifying        : yajl-2.1.0-10.el8.x86_64                                                 26/62 
  Verifying        : checkpolicy-2.9-1.el8.x86_64                                             27/62 
  Verifying        : cockpit-bridge-264.1-1.el8.x86_64                                        28/62 
  Verifying        : dejavu-fonts-common-2.35-7.el8.noarch                                    29/62 
  Verifying        : dejavu-sans-mono-fonts-2.35-7.el8.noarch                                 30/62 
  Verifying        : fontpackages-filesystem-1.44-22.el8.noarch                               31/62 
  Verifying        : fuse-common-3.3.0-15.el8.x86_64                                          32/62 
  Verifying        : fuse3-3.3.0-15.el8.x86_64                                                33/62 
  Verifying        : fuse3-libs-3.3.0-15.el8.x86_64                                           34/62 
  Verifying        : glib-networking-2.56.1-1.1.el8.x86_64                                    35/62 
  Verifying        : gsettings-desktop-schemas-3.32.0-6.el8.x86_64                            36/62 
  Verifying        : json-glib-1.4.4-1.el8.x86_64                                             37/62 
  Verifying        : libmodman-2.0.1-17.el8.x86_64                                            38/62 
  Verifying        : libproxy-0.4.15-5.2.el8.x86_64                                           39/62 
  Verifying        : policycoreutils-python-utils-2.9-19.el8.noarch                           40/62 
  Verifying        : python3-audit-3.0.7-2.el8.2.x86_64                                       41/62 
  Verifying        : python3-chardet-3.0.4-7.el8.noarch                                       42/62 
  Verifying        : python3-idna-2.5-5.el8.noarch                                            43/62 
  Verifying        : python3-libsemanage-2.9-8.el8.x86_64                                     44/62 
  Verifying        : python3-policycoreutils-2.9-19.el8.noarch                                45/62 
  Verifying        : python3-pysocks-1.6.8-3.el8.noarch                                       46/62 
  Verifying        : python3-requests-2.20.0-2.1.el8_1.noarch                                 47/62 
  Verifying        : python3-setools-4.3.0-3.el8.x86_64                                       48/62 
  Verifying        : python3-setuptools-39.2.0-6.el8.noarch                                   49/62 
  Verifying        : python3-urllib3-1.24.2-5.el8.noarch                                      50/62 
  Verifying        : shadow-utils-subid-2:4.6-16.el8.x86_64                                   51/62 
  Verifying        : tar-2:1.30-5.el8.x86_64                                                  52/62 
  Verifying        : audit-3.0.7-2.el8.2.x86_64                                               53/62 
  Verifying        : audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64                           54/62 
  Verifying        : audit-libs-3.0.7-2.el8.2.x86_64                                          55/62 
  Verifying        : audit-libs-3.0-0.17.20191104git1c2f876.el8.1.x86_64                      56/62 
  Verifying        : libsemanage-2.9-8.el8.x86_64                                             57/62 
  Verifying        : libsemanage-2.9-6.el8.x86_64                                             58/62 
  Verifying        : platform-python-pip-9.0.3-22.el8.rocky.0.noarch                          59/62 
  Verifying        : platform-python-pip-9.0.3-20.el8.rocky.0.noarch                          60/62 
  Verifying        : policycoreutils-2.9-19.el8.x86_64                                        61/62 
  Verifying        : policycoreutils-2.9-16.el8.x86_64                                        62/62 

Upgraded:
  audit-3.0.7-2.el8.2.x86_64                audit-libs-3.0.7-2.el8.2.x86_64                        
  libsemanage-2.9-8.el8.x86_64              platform-python-pip-9.0.3-22.el8.rocky.0.noarch        
  policycoreutils-2.9-19.el8.x86_64        
Installed:
  abattis-cantarell-fonts-0.0.25-6.el8.noarch                                                       
  buildah-1:1.24.2-4.module+el8.6.0+971+69b94baf.x86_64                                             
  checkpolicy-2.9-1.el8.x86_64                                                                      
  cockpit-bridge-264.1-1.el8.x86_64                                                                 
  cockpit-podman-43-1.module+el8.6.0+971+69b94baf.noarch                                            
  conmon-2:2.1.0-1.module+el8.6.0+971+69b94baf.x86_64                                               
  container-selinux-2:2.179.1-1.module+el8.6.0+971+69b94baf.noarch                                  
  containernetworking-plugins-1:1.0.1-2.module+el8.6.0+971+69b94baf.x86_64                          
  containers-common-2:1-27.module+el8.6.0+971+69b94baf.x86_64                                       
  criu-3.15-3.module+el8.6.0+971+69b94baf.x86_64                                                    
  crun-1.4.4-1.module+el8.6.0+971+69b94baf.x86_64                                                   
  dejavu-fonts-common-2.35-7.el8.noarch                                                             
  dejavu-sans-mono-fonts-2.35-7.el8.noarch                                                          
  fontpackages-filesystem-1.44-22.el8.noarch                                                        
  fuse-common-3.3.0-15.el8.x86_64                                                                   
  fuse-overlayfs-1.8.2-1.module+el8.6.0+971+69b94baf.x86_64                                         
  fuse3-3.3.0-15.el8.x86_64                                                                         
  fuse3-libs-3.3.0-15.el8.x86_64                                                                    
  glib-networking-2.56.1-1.1.el8.x86_64                                                             
  gsettings-desktop-schemas-3.32.0-6.el8.x86_64                                                     
  json-glib-1.4.4-1.el8.x86_64                                                                      
  libmodman-2.0.1-17.el8.x86_64                                                                     
  libnet-1.1.6-15.el8.x86_64                                                                        
  libproxy-0.4.15-5.2.el8.x86_64                                                                    
  libslirp-4.4.0-1.module+el8.6.0+971+69b94baf.x86_64                                               
  podman-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64                                               
  podman-catatonit-2:4.0.2-6.module+el8.6.0+971+69b94baf.x86_64                                     
  policycoreutils-python-utils-2.9-19.el8.noarch                                                    
  protobuf-c-1.3.0-6.el8.x86_64                                                                     
  python3-audit-3.0.7-2.el8.2.x86_64                                                                
  python3-chardet-3.0.4-7.el8.noarch                                                                
  python3-idna-2.5-5.el8.noarch                                                                     
  python3-libsemanage-2.9-8.el8.x86_64                                                              
  python3-pip-9.0.3-22.el8.rocky.0.noarch                                                           
  python3-podman-4.0.0-1.module+el8.6.0+785+d1251653.noarch                                         
  python3-policycoreutils-2.9-19.el8.noarch                                                         
  python3-pysocks-1.6.8-3.el8.noarch                                                                
  python3-pytoml-0.1.14-5.git7dea353.el8.noarch                                                     
  python3-pyxdg-0.25-16.el8.noarch                                                                  
  python3-requests-2.20.0-2.1.el8_1.noarch                                                          
  python3-setools-4.3.0-3.el8.x86_64                                                                
  python3-setuptools-39.2.0-6.el8.noarch                                                            
  python3-urllib3-1.24.2-5.el8.noarch                                                               
  python36-3.6.8-38.module+el8.5.0+671+195e4563.x86_64                                              
  runc-1:1.0.3-2.module+el8.6.0+971+69b94baf.x86_64                                                 
  shadow-utils-subid-2:4.6-16.el8.x86_64                                                            
  skopeo-2:1.6.1-2.module+el8.6.0+971+69b94baf.x86_64                                               
  slirp4netns-1.1.8-2.module+el8.6.0+971+69b94baf.x86_64                                            
  tar-2:1.30-5.el8.x86_64                                                                           
  toolbox-0.0.99.3-0.4.module+el8.6.0+971+69b94baf.x86_64                                           
  udica-0.2.6-3.module+el8.6.0+971+69b94baf.noarch                                                  
  yajl-2.1.0-10.el8.x86_64                                                                          

Complete!

步骤2:创建普通用户wanlinwang,

[root@55a87a3acb63 ~]# useradd wanlinwang
[root@55a87a3acb63 ~]# echo password | passwd --stdin wanlinwang
Changing password for user wanlinwang.
passwd: all authentication tokens updated successfully.

步骤3:打开linger特性。linger是允许用户在logout情况下可以跑long-running的服务。

[root@55a87a3acb63 ~]# loginctl enable-linger wanlinwang
[root@55a87a3acb63 ~]# loginctl show-user wanlinwang
UID=1001
GID=1001
Name=wanlinwang
Timestamp=Sat 2022-07-02 01:32:28 CEST
TimestampMonotonic=355372762
RuntimePath=/run/user/1001
Service=user@1001.service
Slice=user-1001.slice
State=lingering
Sessions=
IdleHint=yes
IdleSinceHint=0
IdleSinceHintMonotonic=0
Linger=yes

步骤4:以wanlinwang登录本机,

[root@55a87a3acb63 ~]# ssh wanlinwang@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:QlT07D/gCNOvYRiBlg/nXA6mtsMxbJjBOGlwyVqr8F0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
wanlinwang@localhost's password: 
[wanlinwang@55a87a3acb63 ~]$ 

步骤5:在wanlinwang的terminal,运行一个容器,

[wanlinwang@55a87a3acb63 ~]$ podman run -d --name mynginx -p 8081:80 docker.io/library/nginx
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob fe0ef4c895f5 done  
Copying blob 8f46223e4234 done  
Copying blob b85a868b505f done  
Copying blob f4407ba1f103 done  
Copying blob 4a7307612456 done  
Copying blob 935cecace2a0 done  
Copying config 55f4b40fe4 done  
Writing manifest to image destination
Storing signatures
2ae92bd97141cf76605d5a798a6938fe93676485b8d550927aaffe11a93ea551
[wanlinwang@55a87a3acb63 ~]$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS            PORTS                 NAMES
2ae92bd97141  docker.io/library/nginx:latest  nginx -g daemon o...  4 seconds ago  Up 4 seconds ago  0.0.0.0:8081->80/tcp  mynginx
[wanlinwang@55a87a3acb63 ~]$ 

从以上来看,成功以非root用户运行一个容器!接下来,我们看下如何让其自启动。

步骤6:创建服务文件,

[wanlinwang@55a87a3acb63 ~]$ mkdir -p ~/.config/systemd/user
[wanlinwang@55a87a3acb63 ~]$ cd ~/.config/systemd/user
[wanlinwang@55a87a3acb63 user]$ podman generate systemd --name mynginx --files
/home/wanlinwang/.config/systemd/user/container-mynginx.service
[wanlinwang@55a87a3acb63 user]$ cat container-mynginx.service
# container-mynginx.service
# autogenerated by Podman 4.0.2
# Sat Jul  2 01:35:55 CEST 2022

[Unit]
Description=Podman container-mynginx.service
Documentation=man:podman-generate-systemd(1)
Wants=network-online.target
After=network-online.target
RequiresMountsFor=/run/user/1001/containers

[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
TimeoutStopSec=70
ExecStart=/usr/bin/podman start mynginx
ExecStop=/usr/bin/podman stop -t 10 mynginx
ExecStopPost=/usr/bin/podman stop -t 10 mynginx
PIDFile=/run/user/1001/containers/overlay-containers/2ae92bd97141cf76605d5a798a6938fe93676485b8d550927aaffe11a93ea551/userdata/conmon.pid
Type=forking

[Install]
WantedBy=default.target
[wanlinwang@55a87a3acb63 user]$ 

步骤7:reload服务文件,

[wanlinwang@55a87a3acb63 user]$ systemctl --user daemon-reload

步骤8:停止当前运行的容器,

[wanlinwang@55a87a3acb63 user]$ podman stop mynginx
mynginx

步骤9:打开开机自启动,

[wanlinwang@55a87a3acb63 user]$ systemctl --user enable --now container-mynginx.service
Created symlink /home/wanlinwang/.config/systemd/user/default.target.wants/container-mynginx.service → /home/wanlinwang/.config/systemd/user/container-mynginx.service.
[wanlinwang@55a87a3acb63 user]$ systemctl --user status container-mynginx.service
● container-mynginx.service - Podman container-mynginx.service
   Loaded: loaded (/home/wanlinwang/.config/systemd/user/container-mynginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-07-02 01:38:01 CEST; 18s ago
     Docs: man:podman-generate-systemd(1)
  Process: 13340 ExecStart=/usr/bin/podman start mynginx (code=exited, status=0/SUCCESS)
 Main PID: 13367 (conmon)
   CGroup: /user.slice/user-1001.slice/user@1001.service/container-mynginx.service
           ├─13351 /usr/bin/slirp4netns --disable-host-loopback --mtu=65520 --enable-sandbox --enable-seccomp --ena>
           ├─13353 rootlessport
           ├─13358 rootlessport-child
           ├─13367 /usr/bin/conmon --api-version 1 -c 2ae92bd97141cf76605d5a798a6938fe93676485b8d550927aaffe11a93ea>
           └─2ae92bd97141cf76605d5a798a6938fe93676485b8d550927aaffe11a93ea551
             ├─13378 nginx: master process nginx -g daemon off;
             ├─13406 nginx: worker process
             └─13407 nginx: worker process
[wanlinwang@55a87a3acb63 user]$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS             PORTS                 NAMES
2ae92bd97141  docker.io/library/nginx:latest  nginx -g daemon o...  4 minutes ago  Up 37 seconds ago  0.0.0.0:8081->80/tcp  mynginx

参考资料

man loginctl手册

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王万林 Ben

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

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

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

打赏作者

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

抵扣说明:

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

余额充值