Поиск по сайту:

Как установить Podman в качестве альтернативы Docker на Debian 11


На этой странице

  1. Предпосылки
  2. Установить Podman
  3. Добавить реестр OCI
  4. Как использовать Podman
  5. Как остановить и удалить контейнер
  6. Начало работы с Podman
  7. Заключение

Podman (POD MANager) — это контейнерный движок, совместимый с OCI, разработанный Red Hat в качестве замены Docker. Он используется для управления и запуска контейнеров, образов и томов через интерфейс командной строки. И Docker, и Podman — это похожее программное обеспечение. Единственное отличие состоит в том, что Podman не требует демона для запуска контейнеров, а Docker — демона Docker Engine. Podman использует библиотеку libpod для управления всей экосистемой контейнеров.

В этом руководстве мы покажем вам, как установить и использовать Podman в Debian 11.

Предпосылки

  • Сервер под управлением Debian 11.
  • На сервере настроен пароль root.

Установить Подман

Пакет Podman включен в репозиторий Debian 11 по умолчанию. Вы можете установить его, просто выполнив следующую команду:

apt-get install podman -y

После установки Podman проверьте версию Podman с помощью следующей команды:

podman --version

Вы должны увидеть версию Podman в следующем выводе:

podman version 3.0.1

Вы можете получить больше информации о Podman, используя следующую команду:

podman info

Вы получите следующий вывод:

host:
  arch: amd64
  buildahVersion: 1.19.6
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: 'conmon: /usr/bin/conmon'
    path: /usr/bin/conmon
    version: 'conmon version 2.0.25, commit: unknown'
  cpus: 2
  distribution:
    distribution: debian
    version: "11"
  eventLogger: journald
  hostname: debian11
  idMappings:
    gidmap: null
    uidmap: null
  kernel: 5.10.0-8-amd64
  linkmode: dynamic
  memFree: 3365183488
  memTotal: 4122267648
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version 0.17
      commit: 0e9229ae34caaebcb86f1fde18de3acaf18c6d9a
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    exists: true
    path: /run/podman/podman.sock
  security:
    apparmorEnabled: true
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: false
    seccompEnabled: true
    selinuxEnabled: false

Добавить реестр OCI

Podman использует файл конфигурации реестра /etc/containers/registries.conf для извлечения всех образов контейнеров из Интернета. Поэтому вам нужно будет отредактировать его и определить реестр:

nano /etc/containers/registries.conf

Добавьте в конец файла следующие строки:

[registries.insecure]
registries = [ ]
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
# Docker only
[registries.block]
registries = [ ]

Сохраните и закройте файл, когда закончите.

Как использовать Подман

В этом разделе мы покажем вам, как использовать команду Podman для получения изображений и запуска контейнера.

Чтобы получить образ Debian, выполните следующую команду:

podman pull debian

Вы получите следующий вывод:

Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob 647acf3d48c2 done  
Copying config 827e561138 done  
Writing manifest to image destination
Storing signatures
827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

Вы можете просмотреть загруженное изображение с помощью следующей команды:

podman images

Вы получите следующий вывод:

REPOSITORY                TAG     IMAGE ID      CREATED      SIZE
docker.io/library/debian  latest  827e5611389a  11 days ago  129 MB

Затем запустите контейнер из образа Debian с помощью следующей команды:

podman run -dit debian:latest

Вы получите следующий вывод:

f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103

Вы можете вывести список всех запущенных контейнеров с помощью следующей команды:

podman ps

Вы должны увидеть следующий вывод:

CONTAINER ID  IMAGE                            COMMAND  CREATED         STATUS             PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     13 seconds ago  Up 13 seconds ago          competent_cori

Чтобы проверить работающий контейнер, запустите команду Podman, указав идентификатор контейнера:

podman inspect f85c4df5ab78

Вы получите следующий вывод:

[
    {
        "Id": "f85c4df5ab787912c984ec820571da7b95b32736ef94ba691d9ab5019c5b5103",
        "Created": "2021-11-28T07:00:12.795302341Z",
        "Path": "bash",
        "Args": [
            "bash"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 6881,
            "ConmonPid": 6878,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-11-28T07:00:13.551753552Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },

Чтобы проверить журнал контейнера, выполните следующую команду:

podman logs f85c4df5ab78

Если вы хотите подключиться к запущенному контейнеру, выполните следующую команду:

podman exec -it f85c4df5ab78 /bin/bash

Вы попадете в оболочку контейнера, как показано ниже:

:/#

Чтобы выйти из оболочки контейнера, выполните следующую команду:

:/# exit

Как остановить и удалить контейнер

Вы также можете использовать Podman для запуска, остановки и удаления контейнера.

Чтобы остановить работающий контейнер, выполните следующую команду:

podman stop f85c4df5ab78

Теперь вы можете проверить остановленный контейнер с помощью следующей команды:

podman ps -a

Вы должны увидеть следующий вывод:

CONTAINER ID  IMAGE                            COMMAND  CREATED        STATUS                       PORTS   NAMES
f85c4df5ab78  docker.io/library/debian:latest  bash     3 minutes ago  Exited (137) 10 seconds ago          competent_cori

Чтобы удалить остановленный контейнер, выполните следующую команду:

podman rm f85c4df5ab78

Если вы хотите остановить последний контейнер, выполните следующую команду:

podman stop --latest

Чтобы запустить последний контейнер, выполните следующую команду:

podman start --latest

Чтобы удалить последний контейнер, выполните следующую команду:

podman rm --latest

Чтобы удалить все запущенные контейнеры, выполните следующую команду:

podman rm -f `podman ps -aq`

Чтобы удалить изображение, выполните следующую команду:

podman rmi 827e5611389a

Вы получите следующий вывод:

Untagged: docker.io/library/debian:latest
Deleted: 827e5611389abf13dad1057e92f163b771febc0bcdb19fa2d634a7eb0641e0cc

Начало работы с Podman

Подробное руководство по использованию Podman для создания образов, томов и контейнеров доступно здесь: Начало работы с Podman: управление образами, контейнерами и томами.

Заключение

В сообщении выше мы объяснили, как установить и использовать Podman в Debian 11. Теперь вы можете использовать Podman в качестве замены Docker для запуска контейнеров и управления ими.