Red Hat Training

A Red Hat training course is available for RHEL 8

8.4. Arranque automático de contenedores con systemd

Puedes controlar el estado del sistema systemd y del gestor de servicios utilizando el comando systemctl. Esta sección muestra el procedimiento general sobre cómo habilitar, iniciar y detener el servicio como usuario no root. Para instalar el servicio como usuario root, omita la opción --user.

Procedimiento

  1. Recargar la configuración del gestor systemd:

    # systemctl --user daemon-reload
  2. Habilitar el servicio container.service e iniciarlo en el momento del arranque:

    # systemctl --user enable container.service
  3. Para iniciar el servicio inmediatamente:

    # systemctl --user start container.service
  4. Comprueba el estado del servicio:

    $ systemctl --user status container.service
    ● container.service - Podman container.service
       Loaded: loaded (/home/user/.config/systemd/user/container.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2020-09-16 11:56:57 CEST; 8s ago
         Docs: man:podman-generate-systemd(1)
      Process: 80602 ExecStart=/usr/bin/podman run --conmon-pidfile //run/user/1000/container.service-pid --cidfile //run/user/1000/container.service-cid -d ubi8-minimal:>
      Process: 80601 ExecStartPre=/usr/bin/rm -f //run/user/1000/container.service-pid //run/user/1000/container.service-cid (code=exited, status=0/SUCCESS)
     Main PID: 80617 (conmon)
       CGroup: /user.slice/user-1000.slice/user@1000.service/container.service
               ├─ 2870 /usr/bin/podman
               ├─80612 /usr/bin/slirp4netns --disable-host-loopback --mtu 65520 --enable-sandbox --enable-seccomp -c -e 3 -r 4 --netns-type=path /run/user/1000/netns/cni->
               ├─80614 /usr/bin/fuse-overlayfs -o lowerdir=/home/user/.local/share/containers/storage/overlay/l/YJSPGXM2OCDZPLMLXJOW3NRF6Q:/home/user/.local/share/contain>
               ├─80617 /usr/bin/conmon --api-version 1 -c cbc75d6031508dfd3d78a74a03e4ace1732b51223e72a2ce4aa3bfe10a78e4fa -u cbc75d6031508dfd3d78a74a03e4ace1732b51223e72>
               └─cbc75d6031508dfd3d78a74a03e4ace1732b51223e72a2ce4aa3bfe10a78e4fa
                 └─80626 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1d

    Puede comprobar si el servicio está activado mediante el comando systemctl is-enabled container.service.

Pasos de verificación

  • Enumera los contenedores que se están ejecutando o que han salido:

    # podman ps
    CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS  NAMES
    f20988d59920  registry.access.redhat.com/ubi8-minimal:latest  top      12 seconds ago  Up 11 seconds ago         funny_zhukovsky
Nota

Para detener container.service, introduzca:

# systemctl --user stop container.service

Recursos adicionales