podman容器的开机自启

14 篇文章 0 订阅
2 篇文章 0 订阅

pdoman容器的开机自启

使用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)

podman 网络

创建网络

[root@podman ~]# docker network create mynetwork
/etc/cni/net.d/mynetwork.conflist
[root@podman ~]# podman network ls
NETWORK ID    NAME        VERSION     PLUGINS
2f259bab93aa  podman      0.4.0       bridge,portmap,firewall,tuning
6d1b23123e26  mynetwork   0.4.0       bridge,portmap,firewall,tuning

修改新生成的网络配置文件的子网和网关或者创建时使用–subnet 指定网段和子网掩码,–gateway指定网关
[root@podman ~]# vim /etc/cni/net.d/mynetwork.conflist 
[root@podman ~]# cat /etc/cni/net.d/mynetwork.conflist 
{
   "cniVersion": "0.4.0",
   "name": "mynetwork",
   "plugins": [
      {
         "type": "bridge",
         "bridge": "cni-podman1",
         "isGateway": true,
         "ipMasq": true,
         "hairpinMode": true,
         "ipam": {
            "type": "host-local",
            "routes": [
               {
                  "dst": "0.0.0.0/0"
               }
            ],
            "ranges": [
               [
                  {
                     "subnet": "192.168.200.0/24",
                     "gateway": "192.168.200.1"
                  }
               ]
            ]
         }
      },
      {
         "type": "portmap",
         "capabilities": {
            "portMappings": true
         }
      },
      {
         "type": "firewall",
         "backend": ""
      },
      {
         "type": "tuning"
      }
   ]
}

修改/usr/share/containers/containers.conf文件设置默认网络为新创建的网络
[root@podman ~]# vim /usr/share/containers/containers.conf 

# The network name of the default CNI network to attach pods to.
#
default_network = "mynetwork"      # 添加此行
#default_network = "podman"

创建容器查看网络

[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] 

podman pull 拉取镜像

[root@podman ~]# podman images 
REPOSITORY  TAG         IMAGE ID    CREATED     SIZE

[root@podman ~]# podman pull docker.io/library/nginx 
Trying to pull docker.io/library/nginx:latest...
Getting image source signatures
Copying blob 44be98c0fab6 done  
Copying blob ed835de16acd done  
Copying blob e5ae68f74026 done  
Copying blob 21e0df283cd6 done  
Copying blob 881ff011f1c9 done  
Copying blob 77700c52c969 done  
Copying config f652ca386e done  
Writing manifest to image destination
Storing signatures
f652ca386ed135a4cbe356333e08ef0816f81b2ac8d0619af01e2b256837ed3e

podman images 显示所有镜像

[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


podman inspect 查看容器详细信息

[root@podman ~]# podman inspect 32955d96f3e4
[
    {
        "Id": "32955d96f3e46e98042ea887bab13529215b0536959bdf988f627b25b2501fd1",
        "Created": "2021-12-14T05:23:57.191968767-05:00",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
.......

// -l 查看最新信息
[root@podman ~]# podman inspect -l | grep -i ipaddress
            "IPAddress": "10.88.0.2",
                    "IPAddress": "10.88.0.2",


podman logs 查看容器日志

[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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值