Как установить Podman в качестве альтернативы Docker на Debian 11
На этой странице
- Предпосылки
- Установить Podman
- Добавить реестр OCI
- Как использовать Podman
- Как остановить и удалить контейнер
- Начало работы с Podman
- Заключение
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 для запуска контейнеров и управления ими.